home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
programs
/
s10502dx.zip
/
SIMPLEX.DOC
next >
Wrap
Text File
|
1992-03-25
|
194KB
|
4,574 lines
┌───────┐ ┌─┐ ┌─────────┐ ┌──────┐ ┌─┐ ┌──────┐ ┌─┐ ┌─┐ ┌───────┐ ┌─┐ ┌─────────┐ ┌──────┐ ┌─┐ ┌──────┐ ┌─┐ ┌─┐
│ ┌─────┘ │ │ │ ┌─┐ ┌─┐ │ │ ┌──┐ │ │ │ │ ┌────┘ └┐└┐ ┌┘┌┘ │ ┌─────┘ │ │ │ ┌─┐ ┌─┐ │ │ ┌──┐ │ │ │ │ ┌────┘ └┐└┐ ┌┘┌┘
│ └─────┐ │ │ │ │ │ │ │ │ │ └──┘ │ │ │ │ └──┐ └┐└─┘┌┘ │ └─────┐ │ │ │ │ │ │ │ │ │ └──┘ │ │ │ │ └──┐ └┐└─┘┌┘
└─────┐ │ │ │ │ │ └─┘ │ │ │ ┌────┘ │ │ │ ┌──┘ ┌┘┌─┐└┐ └─────┐ │ │ │ │ │ └─┘ │ │ │ ┌────┘ │ │ │ ┌──┘ ┌┘┌─┐└┐
┌─────┘ │ │ │ │ │ │ │ │ │ │ └────┐ │ └────┐ ┌┘┌┘ └┐└┐ ┌─────┘ │ │ │ │ │ │ │ │ │ │ └────┐ │ └────┐ ┌┘┌┘ └┐└┐
└───────┘ └─┘ └─┘ └─┘ └─┘ └──────┘ └──────┘ └─┘ └─┘ └───────┘ └─┘ └─┘ └─┘ └─┘ └──────┘ └──────┘ └─┘ └─┘
Simplex BBS - (c) 1989-92
Chris Laforet Software/Christopher Laforet
All Rights Reserved.
Chris Laforet can be contacted at:
The Programmer's Oasis BBS - Graham, NC - 919/226-6984
The Programmer's Oasis 2 BBS - Graham, NC - 919/226-7136
FidoNet Mail 1:3644/1 or 1:3644/2 as Chris Laforet
CompuServe Email - User ID: 76120,110
BIX Email - User ID: laforet
Programming by Chris Laforet
Unauthorized Selling/Renting Prohibited
Documentation Title Page/Help Files/Etc by Robbie Foust
_________________________________________________________________
Chapter 1 Chapter 1
Legalistic Mumbo-Jumbo (i.e. Better Read This Stuff) Legalistic Mumbo-Jumbo (i.e. Better Read This Stuff)
_________________________________________________________________
Simplex is copyright (c) 1989-92, Chris Laforet Software and/or
Christopher Laforet. This copyright is waived for the
distribution of the executable files for Simplex. This means
that you are free to distribute the Simplex executables as you
wish as long as they are contained in the original form in which
you received them.
Simplex executables as released by Chris Laforet Software are
absolutely free of charge to individuals and corporations. Sale
of any of these executables is in violation of this agreement and
is subject to court action. The only exception to this is
shareware and freeware software distribution houses are allowed
to charge for distribution materials (e.g. diskettes). Even
though it is free for use, if you want to send a contribution to
Chris Laforet Software, be assured that it will be cheerfully
accepted!
The source code for Simplex is available for purchase from Chris
Laforet Software. When you purchase this code, you are granted
an exclusive license to modify it for your own use. The
executables that you produce must never be distributed in place
of the original executables as compiled and distributed from
Chris Laforet Software unless you arrange a royalty system with
Chris Laforet Software. During the course of your modifications,
should you develop a feature which you believe should be a part
of the distributed Simplex executables, you may submit the code
to Chris Laforet Software for review and for possible
incorporation into Simplex, as long as such incorporation does
not place Chris Laforet Software and/or Christopher Laforet under
any monetary obligations. Your submitted code must include a
cover letter indicating that you are freely granting permission
to Chris Laforet Software for the incorporation of your code into
Simplex.
Should you wish to purchase Simplex for use as a platform for
another product, or wish to convert Simplex to another language
(French, Japanese, Swahili) or to another operating system (Atari
ST, VAX, AX-400), and wish to market the resultant product,
contact Chris Laforet Software and a royalty agreement can be
developed. Royalties generally range somewhere between 10% and
15% of the sales price of the product, but each case is different
and merits discussion.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 2 Page 2
There are no warranties of any kind, explicit or implied, on the
Simplex software. Simplex's executables are provided on an "AS
IS" basis. What this means is that if you decide to use Simplex,
it is at your own risk. In plain English, this means that if you
use Simplex and your machine blows up, the developers and
distributors of Simplex are not responsible in any fashion. If
you use Simplex and it loses all of the files on your disk, once
again the developers and distributors of Simplex are not to be
held accountable. While these scenarios are rather extreme in
nature, they serve to indicate that Chris Laforet Software and/or
Christopher Laforet does not warrant, guarantee, or make any
other representations regarding the use, or results of use, of
Simplex or its documentation in terms of accuracy, reliability,
correctness, currentness, or otherwise.
Simplex has been developed and alpha tested on a 386-20 running
OS/2 1.xx. Two copies of Simplex using US Robotics Courier
HST/v32bis 14.4 Kbaud Dual-Standard baud modems run
simultaneously 24 hours/day on this setup.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 3 Page 3
_________________________________________________________________
Chapter 2 Chapter 2
Introduction to Simplex Introduction to Simplex
_________________________________________________________________
Simplex is a package created for the running of a Bulletin Board
System (BBS). The development of Simplex arose out of Chris'
personal gripes insofar as his inability to either fix bugs or
add features to other BBS packages. From the outset, Simplex was
designed to be an easy-to-use BBS system, with source code
available (at a price!) to anyone who might be interested. On
the other hand, Simplex's executables are meant to be distributed
as public-domain material. There are many good BBSes out there,
ones which have cost their SYSOPs (System Operators) lots of
money to purchase the necessary hardware. There is no reason on
earth why they also have to ante up lots of money for their BBS
software.
Simplex is somewhat based on the user interface of QuickBBS. It
is said that imitation is the sincerest form of praise, and it is
in praise of QuickBBS' logical user interface (like P for Pause!)
that Simplex emulates certain of its characteristics.
Simplex is currently available for DOS or OS/2. It is currently
being ported to UNIX also. Simplex is going to be produced in a
multiuser version for OS/2 in the future. There are no plans to
make the DOS version multiuser, but once it has been ported to
UNIX, Simplex should be multiuser there.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 4 Page 4
_________________________________________________________________
Chapter 3 Chapter 3
Installing Simplex Installing Simplex
_________________________________________________________________
DOS users of Simplex will require a FOSSIL driver such as Ray
Gwinn's excellent X00 package. FOSSILs are available on most
BBSes and services. A FOSSIL driver is a special program which
provides an interface to communications ports. OS/2 users do not
have to use a fossil since OS/2 supports communications ports
with interrupt-driven drivers.
Please take careful note: Simplex users must have a modem which Please take careful note:
is capable of CTS-RTS handshaking (many 2400 baud modems control
this with &R1). Also, Simplex requires that DTR controls the
on-line state of the modem (most 2400 baud modems control this
with &D2) and CD (carrier detect) must correctly follow the
remote's carrier (controlled with &C1 om many 2400 baud modems).
Without these criteria being met, Simplex probably will not work
on your system.
DOS users of Simplex must set up to have a sufficient number of
file handles available for Simplex to run. This is done by
editing/creating a file called CONFIG.SYS which is found in the
root directory of the boot drive (A: or C:) and ensuring that
there is an entry that sets files greater than or equal to 30.
If it is there, but less than 30, change it to 30. If it is not
there, add a line that says:
files=30
and then save your changes. The machine must then be rebooted to
install the changes. OS/2 users of Simplex do not have to do
anything special to raise their file handles.
OS/2 users might want to play with their timeslice statement in
their config.sys to achieve a smoother flow of the BBS. On the
386-20 at Chris Laforet Software, a timeslice of 32,96 appears to
achieve acceptable results. The priority statement should be
set to dynamic and the maxwait should be 1 or 2. The memman
statement should include swap and move, especially if your system
suffers from RAM cram. If you are planning to run your machine
as a dedicated BBS, then autofail should be set to yes so that
your system will handle fatal system errors and not hang waiting
for keyboard input. Here is a sample from the 386-20 that runs
the Programmer's Oases BBSes:
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 5 Page 5
autofail=yes
pauseonerror=no
threads=96
maxwait=1
priority=dynamic
timeslice=32,96
memman=swap.move
3.1-Simplex and Answering the Phone 3.1-Simplex and Answering the Phone
_________________________________________________________________
Simplex will answer the phone by itself as long as your modem
returns string results (like Hayes). In CONFIG you can configure
your modem's strings for Simplex to monitor. If you are running
a FidoNet or other network node, then you will probably have a
front-end mailer answer the phone for you. See below for more
details of using a mailer.
If you are running Simplex as a simple host program, you might
want to use the ringback feature. This feature permits you to
use your voice line for your host and not have to worry too much
about your modem answering the phone and surprising one of your
friends! How this works is that a person wishing to call your
host rings the number and allows it to ring less than 5 times.
This will then arm the answer feature. They can then call back
in less than 40 to 50 seconds and the modem will answer them.
After they hang up, the system will be back in an unarmed state.
3.2-Setting Up Simplex BBS Paths 3.2-Setting Up Simplex BBS Paths
_________________________________________________________________
Simplex should have a special directory for its configuration,
message, and userlist files. This directory can be shared with
other programs if so desired (for example, with the front-end
mailer's configuration files). It also requires a directory for
its menu files, a directory which should be used exclusively for
these files. Simplex also requires a directory for its screen
files. It is advisable to create 3 subdirectories, say \SIMPLEX
(for the configuration, message, and userlist files),
\SIMPLEX\MENUS (for the menu files), and \SIMPLEX\SCREENS (for
the screen files).
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 6 Page 6
Simplex and its utility programs respond to the SIMPLEX
environment variable (SET SIMPLEX=path of Simplex configuration
file). It is advisable to place this set statement in your
autoexec.bat file (in DOS) or in your config.sys (in OS/2) so
that Simplex and its utilities can always find their home
directory.
If you are planning to run a Net node with Simplex, you also need
an inbound directory where your front-end mailer places files
bound for your node. There also needs to be an outbound
directory in which your Simplex system will place files for your
front-end mailer to send to other nodes. These could be called
\SIMPLEX\INBOUND and \SIMPLEX\OUTBOUND and must be set up in both
Simplex's configuration as well as your front-end mailer's
configuration.
Simplex requires two other directories to handle its normal Net
mail duties. These are a matrix directory where it tosses mail
as standard FSC-0001 message files during exportation/forwarding,
and a packet directory which it uses as a scratch area while
unpacking inbound mail. These could be called \SIMPLEX\MATRIX
and \SIMPLEX\PACKET. Please notice that Simplex maintains its
packet directory and thus it should only be used by Simplex
itself.
3.3-Presumptions Underlying Simplex's Net Mail 3.3-Presumptions Underlying Simplex's Net Mail
_________________________________________________________________
Net mail has been implemented in Simplex 1.04 with a number of
underlying presumptions. The first and foremost of these is that
all users should have access to Net mail. The second of these is
that file attaching should be controllable by the Sysop and
access to this feature should be granted exclusively by him/her.
The third of these is that when Echomail discussions get off-
topic, they should be taken to netmail.
The first presumption is demonstrated when a user without mail
credit decides to enter a Net message. They are permitted to
send the message, but can only choose to send it as Routed mail
or as Held mail. If the user has sufficient credit, they can
send it as Direct mail or either of the previous two types.
Simplex looks at mail as a three-layered system. These three
layers are as follows (compared with oMMM's mail extensions):
Direct Mail oMMM's CM
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 7 Page 7
Routed Mail oMMM's Normal
Held Mail oMMM's Held
Direct mail is mail that is intended to be sent DIRECTLY from
your node to the destination (whether this is indeed how it is
sent depends upon the Sysop!). Routed mail is that which is
supposed to follow a routing path through the network. Held mail
is that which is supposed to be held for pickup by another node
which polls yours at specific intervals.
Notice that the three-layered system is all theoretical. For
example, none of my nodes sends Netmail bound for international
locations directly to them, regardless of if the message was
specified as being Direct. It is much cheaper to send direct
mail to the specified Zone gates and let them be routed from
there. On the other hand, if someone enters a message to a local
node and specifies that it is to be Held, it is transformed to
Direct mail and sent immediately (since the node is local, it
doesn't cost anything, right?).
The way that you implement the three-layered system is controlled
by your use of SMP (or SMP/2) to handles your specific routing
needs. SMP's routing verbs are discussed later on in this file.
The second presumption in Simplex is that the option to Netmail
file-attaching is under control of the Sysop. How this control
is exerted is by means of a flag in the user's record. The Sysop
must be careful with who is granted the privilege of file-
attaching since a hacker can easily file-attach critical files
(like userlist.bbs?) to themselves at another node if they have
any idea how your system is laid out!! Please notice that the
local file-attaching feature works differently. Only files from
a specific sysop-specified directory can be attached to another
user on the same system.
The third presumption in Simplex is that Echomail discussions
should go over to Netmail when they start drifting off-topic.
This is implemented by a special option that appears while
reading Echomail messages which permits users to reply directly
to the message using Netmail. Notice that the user can only
enter Routed or Held Netmail if they don't have enough/any
credit!
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 8 Page 8
3.4-Installing a Network Node 3.4-Installing a Network Node
_________________________________________________________________
If you want to use Simplex as a Net node, you will need to use
some sort of a front-end mailer software such as BinkleyTerm or
FrontDoor. This software is needed in order to handle mail
transactions between your node and other Net nodes. Whatever
mailer you use must comply with oMMM message bundle formatting
(unless you choose to write a message handling interface between
your mailer and Simplex).
Simplex needs a special directory which it uses as an interface
to the front-end mailer. Traditionally, this directory has been
named the MATRIX directory. This directory is used during the
exportation/forwarding of messages from Simplex to other nodes.
The format of these messages is the standard FidoNet message
format as outlined in their FSC-0001 standard (1.MSG, 2.MSG,
etc.). These messages are then taken by mail bundlers such as
oMMM or SMP and bundled for the front-end mailer. It is
essential that this directory not be used for anything else.
Simplex also needs a special directory where inbound bundles and
message packets are placed. Traditionally, this directory has
been called INBOUND. The front-end mailer will place the inbound
bundles in message packets here once they have been successfully
received. Simplex's mail utilities will scan this directory for
any unpacked bundles or packets which it would proceed to unpack.
It is not essential that this area be used exclusively for
inbound mail since Simplex searches for bundles and packets based
on their file extensions.
Simplex requires a special directory which can be used as a
"scratch" area. This directory is essential and must be used
exclusively by Simplex. It is suggested that you call this
directory PACKET since it is used to hold unarchived inbound mail
bundles. This directory is essential because once the mail is
unarchived, the archives are deleted. If the packets are not
unpacked for any reason, they will remain intact until Simplex's
mail utilities are run once again. This directory along with the
inbound directory is searched for message packets every time
Simplex's mail utilities are run.
All members of a FidoNet compatible network are listed in a file
called a nodelist. In order to be able to communicate with other
nodes, BBS and mailer software must have access to this nodelist.
Simplex is no exception to this rule. It requires that the
nodelist be compiled using any Version 6 nodelist compiler
(Version 6 nodelists are used by BinkleyTerm, Opus, and many
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 9 Page 9
other FidoNet utilities) such as ParseList. Simplex must know
exactly where to find the compiled nodelist.
Simplex requires a Net node's address. This address uniquely
identifies the node during communications with other Net nodes.
A FidoNet-compatible address consists of a Zone (read continent
or network), a Net, and a Node number such as 1:151/401 which
identifies Simplex's "home" node as being in Zone 1 (Fidonet,
North America), Net 151 (Eastern North Carolina), and Node 401 in
that net. While use of the Zone number is not absolutely
essential at this time and it is perfectly acceptable to list
your Zone number as 0, such use should be frowned upon in a
network which is worldwide in nature! Hence Simplex does
somewhat attempt to enforce the use of the Zone number.
Finally, Simplex needs a nodelist. The nodelist must be compiled
with any nodelist compiler that produces a "Version 6" nodelist.
This is the same type of nodelist used by Opus<Tm> and
BinkleyTerm. Nodelist compilers such as Parselst produce the
correct formatted nodelist files.
3.5-Setting up a non-Net BBS 3.5-Setting up a non-Net BBS
_________________________________________________________________
In order to run Simplex without Net support, a Sysop needs to
make sure that none of the following conditions are true:
1. There is no path set pointing to the nodelist in section
4 of CONFIG.
2. There is no node address in section 1 of CONFIG.
3. There are no message areas marked as being Net mail.
Once these conditions are checked, Simplex will not attempt to
start up with a nodelist.
3.6-Configuring Simplex with CONFIG 3.6-Configuring Simplex with CONFIG
_________________________________________________________________
Configuration of Simplex is rather simple using CONFIG.EXE (in
OS/2 it is CONFIG2.EXE). In DOS using some old CGA systems,
direct screen writes cause "snow" on the screen. If you run
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 10 Page 10
CONFIG and get snow, exit and then run it with CONFIG -S to
enable retrace ("snow") checking. If you are running with a
monochrome VGA setup or something similar, you might want to use
the -M flag to select "Monochromatic" colors.
Essentially Simplex is a menu-driven program which is
straightforward to use with the following exceptions:
1. When you make changes on a text field you MUST hit
Enter on the field to keep them.
2. When you change a screen of options, you may hit hit
Alt-X, Alt-Q or ESC to exit back to the menu and keep
the changes.
3. When editing menus, pressing PgUp, PgDn, or Alt-X will
keep the changes. Pressing ESC aborts the changes on
the current menu page only.
4. To go forwards to a specific field without affecting
the contents of any other fields, press Tab. To go
backwards use Shift-Tab.
5. On multiple choice options, you may select the
letter/number corresponding to the choice that you
wish, hit Enter or Tab to skip past it without making a
change, or hit Shift-Tab to skip back to the previous
option.
6. On scrolling, light-bar menus, use your Arrow keys to
select the option that you wish. You may also hit the
first letter of an option to get to the first option
matching that letter. Ctrl-PgUp and Ctrl-PgDn move a
"page" of options at a time.
7. Always remember that your ESC key backs you out without
saving changes!
Option 1: This screen allows you to configure your BBS info.
- You must enter your BBS Name and Sysop Name.
- If you provide your Sysop name in the same form as your
login, messages addressed to Sysop will be directed to
you.
- If you run a Net node, then you must also provide your
address and an origin line to use in Echomail messages.
The origin line will be appended to the bottom of
Echomail messages along with your node number unless
you have configured a special origin line along with
the message area (see option 6).
Option 2: This screen allows you to configure your modem
parameters.
- You must set up your modem's maximum baud rate.
- If your modem can support locked DTE-DCE rates, you may
select "Yes" for locked baudrate. If the baudrate is
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 11 Page 11
locked, then any time Simplex sets a baud rate, it will
always be set to the maximum baud rate.
- You also can indicate if your modem is slow to respond
to commands, and set the minimum baud rate a user has
to have to log on to Simplex and the minimum baud a
user has to have in order to see ANSI color screens.
- Notice that in modem configuration strings the |
character indicates Carriage Return and the ~ character
indicates a 0.5 second pause.
Option 3: This screen allows you to configure Simplex's usage
options.
- Private BBS operation means that if someone is not in
the userlist, they are not allowed to log in.
- Disable local keyboard means that by default the
keyboard is disabled from being active while someone is
logged in (this can be toggled on and off with Alt-K
while Simplex is running.
- You can select if the user must provide a full address
when they log in, or just their city/state as well as
if they have to provide their phone numbers.
- You may choose some of the colors used by Simplex.
- You may specify a program to run after mail check and
before the bulletin is shown. This program is called
the "Welcome" program. It may be used for handling a
callback verifier or any other program that you wish to
run automaically. The $ flags used in menu type 240
are accepted here also.
- You may specify a virus checker program to run. More
information on this later.
Option 4: This screen allows you to configure Simplex's paths.
Some of these paths are only for Net mail and can be
ignored if you are not going to run a Net node.
Nodelist path is one of these.
Option 5: This screen allows you to configure the archiver
command lines for archivers available on your system.
- This option is needed for Net nodes and for systems
that allow downloadable mail.
- NOTICE: All archivers must exit with a 0 errorlevel if
the archiving was a success. Any other return value is
taken by Simplex to mean that the archiving process
failed.
Option 6: This section permits you to edit/add/delete message
boards for your Simplex system. Use PgUp and PgDn keys
to scroll through each message board. The number of
the message board is used in menu options. Message
boards may be numbered any value from 1 through 9999,
depending on your preferences. The message board name
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 12 Page 12
is shown to the user while reading messages. Message
board types may be Local, Net Mail (can be multiple
areas for Net mail linked to different Net and AKA-Net
addresses), Echomail (can also be linked to different
Net and AKA-Net addresses), or Local Fileattach.
Message boards may allow messages which are private
only, public only, or both public and private. The
read and write privilege levels are the minimum user
levels to be able to read and post messages on the
board. The sysop privilege level is the minimum user
level required to have access to sysop's message
options like Export and Move messages. If the area is
an Echomail area, you can also specify a special origin
line to be used in lieu of the default origin line for
that area only.
Option 7: This section permits you to edit/add/delete file
boards for your Simplex system. As in option 6, use
PgUp and PgDn to scroll through each file board. The
number of the file board is used in menu options. File
boards may be numbered from 1 to 9999. The file board
name is shown to the user during searches across areas.
The search privilege level is the minimum user level
needed in order to get access to the file area in
searches across areas. The file path is the path to
the file area. This area should contain files for the
area along with a FILES.BBS file (see description
below). In most cases the alternate path to FILES.BBS
should be left blank (it defaults to the file area
path), it is only included for special systems such as
CD-ROM units which must have a FILES.BBS in a directory
on the hard drive separate from the regular file path.
Option 8: This section allows you to edit/add/delete events for
your Simplex system. The event title will be shown to
the user if their on-line time is going to be cut short
by a pending forced system event. You may select the
weekdays and time that the event is supposed to occur
and the errorlevel that Simplex exits with if the event
occurs. You may set an event to be forced or not. In
Simplex, an event is "forced" if it will exit even if a
user is on-line. If an event is not "forced", it will
only exit if Simplex is sitting idle when the event
occurs. Should you wish to temporarily suspend an
event without deleting, you may mark it as not enabled.
PLEASE NOTICE THAT WHILE EVENTS DO NOT EXIT WITH THIS
RELEASE OF SIMPLEX, THEY WILL ACT TO LIMIT A USERS TIME
ONLINE AT SPECIAL TIMES OF THE DAY.
Option 9: This section allows you to edit/add/copy/delete menu
files. Use of this section rather straightforward.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 13 Page 13
Follow the prompts and help information. While the
menu editor is convenient for small fixes, the Simplex
Menu Compiler (SMC) is more convenient for laying out
complete menu systems. Bear in mind that some menu
options require data to be provided in the optional
data field while others do not. See below for more
details on menu types. Two points that must be
clarified here are the use of the expert and
autoexecute flags in menu lines. A user can toggle
expert mode, a mode which should disable the showing of
menu options, only showing a list of hotkeys. However,
some lines of the menu should still show so that the
user knows where they are. One of these should be the
menu title line. Hence you can indicate with a "Yes"
to the expert mode question when you would like to show
menu lines to the expert mode user. Autoexecuting
menus options are done when the menu is being shown.
Any menu type can be autoexecuting, however some menu
types do not make sense if they are automatic. One use
of this feature is outlined in the description of the
type 49 option below.
Option 0: This section allows you to do primitive
editing/additions to users. This is not the best way
to handle users; using the internal Simplex user editor
is the preferred way of editing the userlist.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 14 Page 14
_________________________________________________________________
Chapter 4 Chapter 4
Simplex Menu Types Simplex Menu Types
_________________________________________________________________
This chapter gives a brief rundown of the types of menu options
available for menu development. Some of these require
information in the additional data fields, while others
do not and merely ignore the contents of said field.
Options in square brackets ([]) are optional.
Type 0: Show menu line. This option will merely show the
contents of the menu line and will not respond to any
hotkeys. Hence there is no need for a key value for this
kind of menu. It is mostly used to give menu titles and/or
blank formatting lines. Additional Data: None
Type 1: Call new menu - Add to return stack. This option will
show the contents of the menu line and if its corresponding
hotkey is triggered, it will attempt to call the menu name
specified in the data line. The current menu is pushed on a
stack so that a subsequent call to menu type 3 will return
to the current menu. If a password is provided, then the
user will be prompted for the password prior to being given
access to the new menu. Additional Data: Menuname
[Password] [/ Menu Template Macros]
Type 2: Goto new menu - Clear return stack. This option will
show the contents of the menu line and if its corresponding
hotkey is triggered, it will attempt to call the menu name
specified in the data line. The return stack is cleared and
the new menu becomes the new base of the stack. If a
password is provided, then the user will be prompted for the
password prior to being given access to the new menu.
Additional Data: Menuname [Password] [/ Menu Template
Macros]
Type 3: Return to previous menu. This option pops the current
menu off of the stack and returns to the previous menu.
Additional Data: None
Type 4: Replace current menu on return stack. This option will
show the contents of the menu line and if its corresponding
hotkey is triggered, it will attempt to call the menu name
specified in the data line. The new menu is put on the
stack and replaces the current menu so that a subsequent
call to menu type 3 will return to the current menu's
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 15 Page 15
previous menu! If a password is provided, then the user
will be prompted for the password prior to being given
access to the new menu. Additional Data: Menuname
[Password] [/ Menu Template Macros]
Type 16: Enter a message on board. This option permits the user
to enter a message on the specified message board.
Optionally the user may be logged off automatically after
exiting the message editor by specifying a /L on the data
line. THe logoff is exactly as if a type 255 menu option
was executed. The message may be forced to a specific user
by using the optional /T=user_name option. Please note the
"_" (underscore) between the user's firat and last names.
This will be changed into a space when the message is
actually entered. Additional Data: board# [/L]
[/T=user_name]
Type 17: Read messages on board. This option permits the user to
read public messages or private messages to him/her on a
message board. If the user's privilege level is greater or
equal to the message board's sysop privilege, then he/she
will be able to read all messages in the area. Additional
Data: board#
Type 18: Scan messages on board. This option permits the user to
see the headers for public messages or private message to
him/her on a message board. If the user's privilege is
greater or equal to the message board's sysop privilege,
then he/she will be able to see all the headers in the area.
Additional Data: board#
Type 19: Quickscan messages on board. This option permits the
user to see the basic headers for public messages or private
message to him/her on a message board. If the user's
privilege is greater or equal to the message board's sysop
privilege, then he/she will be able to see all the basic
headers in the area. Additional Data: board#
Type 20: Search userlist. This option permits the user to search
the userlist for a user's name and/or list all users on the
BBS. Additional Data: None
Type 21: Search for Net address. This option permits a user to
search for a specific Net node in the nodelist. Additional
Data: None
Type 22: Generate FREQ to Net address. This option permits the
user to generate network file-requests (in *.REQ files) to a
specific Net node. Additional Data: None
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 16 Page 16
Type 32: List files on file board. This option opens the file
board's FILES.BBS and lists the files available in the area.
Additional Data: board#
Type 33: Upload file to file board. This option permits the user
to upload files to the specific file board. In local mode,
this option permits files to be copied from another
drive/directory into the file area. Additional Data: board#
Type 34: Download file from file board. This option permits the
user to download files from the specified file board. In
local mode, this option permits files from the file area to
be copied to another drive/directory. Additional Data:
board#
Type 35: Raw directory list of file board. This options permits
the user to get a raw directory of the files in the
specified file board. Additional Data: board#
Type 36: Contents of archive on file board. This option permits
the user to see the contents of .ARC, .PAK, .ZIP, .LZH, and
.ZOO files in the specified file board. Additional Data:
board#
Type 37: Show new files across file boards. This option searches
across file boards for files with dates later then the
user's last login or with dates later than a user-defined
date. Additional Data: board#
Type 38: Search for filename across file boards. This option
searches across file boards for a specified file name.
Additional Data: board#
Type 39: Search for keyword across file boards. This option
searches across file boards for a specified keyword in the
descriptions. Additional Data: board#
Type 40: Delete file on file board. This option permits the user
to delete files and description entries in the specified
file area. Additional Data: board#
Type 41: Read a text file on file board. This option permits a
user to read the contents of a file contained in the
specified file area. Additional Data: board#
Type 42: Download ONE special file from board. This option
permits a user to download a sysop-specified file from a
specified area. Additional Data: board# filename.ext
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 17 Page 17
Type 43: Move file(s) from one file board to another. This
option permits the user to move files and descriptions to a
different board. Additional Data: source_board#
Type 48: Show ascii/ansi file. This option shows the user the
specified ansi or ascii file. Do not include the extension,
only the base filename. The file will not pause at the end.
Additional Data: filename
Type 49: Show ascii/ansi file with hotkeys. If this option is
used as an automatic executing menu option, the file
indicated in the data line will be shown to the user when
its menu line is being shown however the menu's hotkeys will
still be active! This permits you to design free-form menus
using an ANSI screen editor. As with a type 48 data line,
do not include the extension, just the base filename. The
file will not pause at the end, but will continue showing
any additional menu lines until the menu is finished. If
someone actually provides a hotkey for this menu type, it
will behave exactly like a type 48 (i.e. hotkeys are only
active when it is an automatic executing option with no
hotkey). Notice, this option will show screens regardless
of if the user has Expert mode on or off. Type 53 works
exactly like this option but only shows the files if expert
mode is off. Additional Data: filename
Type 50: Show ascii/ansi file with pause at end. This option
shows the user the specified ansi or ascii file. Do not
include the extension, only the base filename. The file
will pause at the end and prompt the user for Enter.
Additional Data: filename
Type 51: Answer questionnaire file. This option leads the user
through a questionnaire file if it is in the screens
directory. See below for more info on Simplex's
questionaire language. Additional Data: filename
Type 52: Show quote of the moment. This option will look in the
screens directory for a compiled quote file. If it exists,
it will "randomly" select a quote from it, show it to the
user and pause for the user to press Enter. See the SQUOTE
section for more details on quote files. Additional Data:
filename
Type 53: Show non-expert ascii/ansi menu with hotkeys. This
option is identical to the type 49 menu option. The only
difference is that this is not shown if a user has Expert
mode on. Additional Data: filename
Type 64: Change user's city/state. This option permits the user
to change his/her city/state. Additional Data: None
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 18 Page 18
Type 65: Change user's password. This option permits the user to
change his/her password. Prior to changing the password,
PASSWORD.A?? is shown (see below). Additional Data: None
Type 66: Change user's clearscreen status. This option allows
the user to toggle on or off his/her sending of clear-screen
codes. These are only sent is ANSI status is on.
Additional Data: None
Type 67: Change user's MORE status. This option allows the user
to toggle on or off his/her screen pausing status. These
are only sent is ANSI status is on. Additional Data: None
Type 68: Change user's screen length. This option allows the
user to toggle on or off his/her sending of clear-screen
codes. These are only sent is ANSI status is on.
Additional Data: None
Type 69: Change user's ANSI status. This option allows the user
to toggle on or off his/her sending of ANSI codes.
Additional Data: None
Type 70: Change user's default editor status. This option allows
the user to toggle between using the line editor and the
full-screen ANSI editor. The full-screen editor is only
entered if ANSI status is on. Additional Data: None
Type 71: Change user's novice/expert mode. This option allows
the user to toggle between normal menu mode and expert mode
(where only option letters are shown). Additional Data:
None
Type 72: Change user's home phone number. This option allows the
user to change his/her home number. Additional Data: None
Type 73: Change user's data/work phone number. This option
allows the user to change his/her data or work number.
Additional Data: None
Type 74: Change user's full address line 1. This option allows
the user to change his/her address line #1. Additional
Data: None
Type 75: Change user's full address line 2. This option allows
the user to change his/her address line #2. Additional
Data: None
Type 76: Change user's city. This option allows the user to
change his/her city (only for full addresses). Additional
Data: None
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 19 Page 19
Type 77: Change user's state. This option allows the user to
change his/her state (only for full addresses). Additional
Data: None
Type 78: Change user's zipcode. This option allows the user to
change his/her zipcode (only for full addresses).
Additional Data: None
Type 80: Enter an advertisement in ad area. This option permits
a user to enter an advertisement or user-posted bulletin in
an "ad" area. Ads are placed in a special file which is
indicated in the data line. The days argument indicates the
maximum amount of time that the "ad" can remain on the
system. The optional /R argument indicates the message
board number where replies to "ads" will be posted. If not
provided, the user is not prompted to permit replies.
Additional Data: filename /D=days [/R=board#]
Type 81: Read advertisements in ad area. This option permits a
user to read advertisements or user-posted bulletins in an
"ad" area. The optional /R argument indicates the message
board number where replies to "ads" will be posted.
Additional Data: filename [/R=board#]
Type 82: Scan advertisements in ad area. This option permits a
user to scan the headers of advertisements or user-posted
bulletins in an "ad" area. Additional Data: filename
Type 96: Set a user's privilege level. This option sets the
user's privilege level to the value in the data line (1
through 255). This privilege level is written to the user's
record and is permanent. The user's time online is adjusted
to suit their new level. It is the equivalent of up or
downgrading a user from the keyboard. Additional Data:
priv_level
Type 97: Raise a user's time. This option adds the number of
minutes specified in the data line to the user's online
time. Additional Data: minutes_to_raise
Type 98: Drop a user's time. This option removes the number of
minutes specified in the data line from the user's online
time. Additional Data: minutes_to_delete
Type 99: Set flags in user's configuration. This option sets the
flags specified in the data line in the user's flags
configuration. The flags are presented as a string of
letters corresponding to the flags to set. There are 16
flags ranging from A to P. e.g. a data string of "AMjp"
will set the A. M, J, and P flags if they are not already
set. Additional Data: flags_to_set
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 20 Page 20
Type 100: Delete flags from user's configuration. This option
unsets the flags specified in the data line in the user's
flags configuration. The flags are presented as a string of
letters corresponding to the flags to set. There are 16
flags ranging from A to P. e.g. a data string of "AMjp"
will delete the A. M, J, and P flags if they are set.
Additional Data: flags_to_delete
Type 101: Set the time of a user to an absolute time. This
option sets the user's time online to the number of minutes
specified in the data line. Additional Data: minutes_to_set
Type 102: Sysop Defined Log Entry. This option will cause the
data in the data line to be logged as a log entry in
SIMPLEX.LOG. Additional Data: message to log
Type 112: Set up combined message boards. This option allows a
user to select the message boards that he/she wants to use
for combined message reading and downloading. These
settings are saved until they are changed. The user can
only select boards for which they have read permission.
Additional Data: none
Type 113: Read messages on combined message boards. This option
permits the user to read messages on the selected combined
message boards. Additional Data: none
Type 114: Scan messages on combined message boards. This option
permits the user to scan message headers that are on the
selected combined message boards. Additional Data: none
Type 115: Quickscan messages on combined message boards. This
option permits the user to quickscan message headers that
are on the selected combined message boards. Additional
Data: none
Type 116: Download messages from combined message boards. This
option permits the user to download all or only new messages
in the selected combined message boards. If archivers are
specified in option 5 of CONFIG, the user can then
optionally elect to archive the mail before downloading it
with a protocol. This option also requires that the file-
attach path be set in CONFIG. This path is used for the
preparation of downloadable mail. Additional Data: none
Type 117: Configure combined boards. This option permits a user
of combined boards to configure their options. These
options include selecting QWK mail or ASCII download, and
which files to include in the QWK packets. Additional Data:
none
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 21 Page 21
Type 118: Upload messages in QWK reply format. This option
permits a user to send a QWK mail reply (REP) packet back to
Simplex. The mail is then split out of the packet and
imported into the areas where the user has permission.
Additional Data: none
Type 128: Send files using Xmodem. This option permits users to
create their own download menu. The option will call the
Xmodem sending routines to request the files the user wants
and then to send them. Additional Data: board #
Type 128: Send files using Xmodem. This option permits users to
create their own download menu. The option will call the
Xmodem sending routines to request the files the user wants
and then to send them. Additional Data: board #
Type 129: Send files using Xmodem-1K. This option permits users
to create their own download menu. The option will call the
Xmodem-1K sending routines to request the files the user
wants and then to send them. Additional Data: board #
Type 130: Send files using Ymodem. This option permits users to
create their own download menu. The option will call the
Ymodem sending routines to request the files the user wants
and then to send them. Additional Data: board #
Type 131: Send files using Ymodem-G. This option permits users
to create their own download menu. The option will call the
Ymodem-G sending routines to request the files the user
wants and then to send them. Additional Data: board #
Type 132: Send files using Zmodem. This option permits users to
create their own download menu. The option will call the
Zmodem sending routines to request the files the user wants
and then to send them. Additional Data: board #
Type 144: Receive files using Xmodem. This option permits users
to create their own upload menu. The option will call the
Xmodem receiving routines to request the files the user
wants to send and then to receive them. Additional Data:
board #
Type 145: Receive files using Xmodem-1K. This option permits
users to create their own upload menu. The option will call
the Xmodem-1K receiving routines to request the files the
user wants to send and then to receive them. Additional
Data: board #
Type 146: Receive files using Ymodem. This option permits users
to create their own upload menu. The option will call the
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 22 Page 22
Ymodem receiving routines to receive the files. Additional
Data: board #
Type 146: Receive files using Ymodem-G. This option permits
users to create their own upload menu. The option will call
the Ymodem-G receiving routines to receive the files.
Additional Data: board #
Type 147: Receive files using Zmodem. This option permits users
to create their own upload menu. The option will call the
Zmodem receiving routines to receive the files. Additional
Data: board #
Type 240: Run a program from within SIMPLEX. This option permits
a user to run an external program. The data line contains
the command line to be passed to the command spawn function.
This function searches the path for the program to run.
There are certain $-escaped meta-commands which can be used
to pass data. These meta-commands MUST BE IN LOWERCASE.
The following meta-commands can be used as arguments to the
program:
$r = user's time left in minutes
$d = current date as mm/dd/yy
$t = current time as hh:mm
$f = user's first name
$l = user's last name
$a = user's ansi flag (ascii 1 if on or ascii 0 if
off)
$p = In DOS: comm port number (ascii 1 for com1). In
OS/2: comm file handle as a decimal ascii string
$u = user's number in userlist as ascii decimal string
(0 is first)
$b = connect baud rate as ascii decimal string (0 is
local keyboard)
$k = Keep the user's time unaltered upon return from
the external program (except for recalculating
time due to a pending forced event). This
behaves like suspending the user's time while in
chat mode.
$* = DOS only: leave fossil hot (do not deinitialize)
before calling program (not considered an
argument to the program)
$e = stop and wait for Enter after running program
(not considered an argument to the program)
$## = Passes the pathname for the file board specified
by ##. For example, if file board 100 has its
path as d:\files\editors, then using $100 would
substitute d:\files\editors. Notice that the
path name is NEVER backslash-terminated. If the
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 23 Page 23
file board specified by ## does not exist, then a
blank argument is passed (i.e. a nul-string).
When the external program returns to Simplex, the user's
record is reread and any changes to fields such as
privilege, or flags (anything other than date/time info) is
incorporated into the data held by Simplex. This allows
external programs to modify a user's access. If the user
has less than two minutes left online upon return, their
time is reset to two minutes so they can exit in an orderly
fashion. Additional Data: program.exe [options]
Type 241: Exit to DOS with an errorlevel. This option is not
currently implemented.
Type 242: Show version/copyright information. This option shows
the user information about Simplex BBS. Additional Data:
None
Type 243: Show user's usage statistics. This option shows the
user some information about his/her first connect date, the
last connect date and time, upload and download statistics,
and time information for this call. Additional Data: None
Type 244: Yell (limited) for chat with Sysop. This option
permits the user to summon the sysop for a chat if the
current time is within the configured yell time specified
under option 3 in CONFIG. Additional Data: None
Type 245: Show current time of day. This option shows the
current date and time until the user presses Enter. This is
provided for systems with access to exact time. Additional
Data: None
Type 246: Check for mail. This option checks for unreceived mail
addressed to the user. It marks mail for later reading and
gives them the option of reading mail immediately.
Additional Data: None
Type 247: Sysop's user-upgrade option. This option permits the
user to access/modify userlist records. It is not meant for
anyone other than Sysops. The user must have ANSI enabled
to access this option. Additional Data: None
Type 248: Yell (unlimited) for chat with Sysop. This option
permits the user to summon the sysop for a chat regardless
of the time of day versus the configured yell time specified
under option 3 in CONFIG. Additional Data: None
Type 255: Logoff/hangup connection. This option logs the user
off of the system. Additional Data: None
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 24 Page 24
_________________________________________________________________
Chapter 5 Chapter 5
Menu Templates Menu Templates
_________________________________________________________________
In order to support multiple menus which are similar, Simplex
supports a menu template structure. This feature is activated by
using the / after the name of the menu (and password if one is
present) in type 1 (Call new menu) and type 2 (Goto new menu)
menu types, and then following this slash with macros
assignments.
5.1-Assigning Menu Template Macros 5.1-Assigning Menu Template Macros
_________________________________________________________________
Macros can be assigned to any letter from uppercase A to
uppercase Z. The assignments look like this:
A=1 B=Messages_to_the_Sysop
Where A is assigned the string "1" and B is assigned the string
"Messages to the Sysop". There can be NO SPACES between the
macro letter, the equals, and the beginning of the assignment.
Since a space signifies the end of the macro assignment, you must
use an underscore to represent a space (as in macro B above).
Sorry, there is no way to represent an underscore character in an
assignment string!
A complete data line for a menu which calls a template menu would
look similar to the following:
msgs password / A=1 B=Messages_to_the_Sysop C=24
if there is a password for the area or like:
msgs / A=1 B=Messages_to_the_Sysop C=24
if there is not a password. MSGS is the name of the template
menu to which to apply the macros.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 25 Page 25
Macros assigned in this fashion will only be applied to the menu
in question, thus the same letters can be reused within a
template menu to call another template menu.
5.2-Using Template Macro Assignments 5.2-Using Template Macro Assignments
_________________________________________________________________
A template menu is not very different from a regular menu. The
difference mainly is in the use of $-escaped UPPERCASE letters to
represent macro substitutions in the prompt and data lines. For
example, $A will substitute the value of macro A for that
specific template menu.
Since a picture is worth a thousand words, I suspect that an
example is worth ten thousand, so here is an example! In the
previous section we called a menu "MSGS" with three macro
assignments, A, B and C. Here is how MSGS can use the macros.
Assume that the first prompt line is the name of the message
area:
--- Message Area $A: ^$B^
This will print the following when called using the syntax of the
previous section:
--- Message Area 1: Messages to the Sysop Messages to the Sysop
when $A and $B are assigned the values assigned to A and B.
Ok, the prompt line works fine, but how does this affect data
lines? The same way. Here are sample menu prompt and data lines
from the same menu:
prompt: "<^$$^> Scan messages"
data: "$C"
This will actually become the following when the menu is actually
called:
prompt: <$> Scan messages $
data: 24
which will pass the number 24 to the Scan function (we assume
this was a type 18 menu and that message board 24 is where sysop
messages are!). The $$ is interpreted as representing a single
dollar sign ($).
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 26 Page 26
_________________________________________________________________
Chapter 6 Chapter 6
Running Simplex Running Simplex
_________________________________________________________________
Simplex may be started by merely typing Simplex on the command
line (OS/2 users use Simplex2) and pressing Enter in the assigned
Simplex directory. However, it is doubtful that such simple use
would suffice for most applications of Simplex! Hence Simplex
accepts a series of command line arguments that permit you to
call it under specified conditions, and it returns with specific
errorlevels to indicate that certain events have occurred.
The Simplex command line may include any of the following
options. A list of these options might be obtained by typing
Simplex -? on the command line. Most of these options are meant
to be used when spawning Simplex from a front-end Net mailer, but
some are even handy for use in simple host applications:
-Bxxxx Startup at the specified baud (User is online)
-D Drop in to Simplex with user's info in simplex.usr
-H Do not hangup before exiting
-L Startup in local mode (same as -B0)
-Mxxxx Locked baud rate. Set port to baud and ignore connect
strings
-O DOS: Swap out to EMS or Disk when spawning external
processes
-OD DOS: Swap out to Disk when spawning external processes
-OE DOS: Swap out to EMS when spawning external processes
-Pxxx DOS: Use the specified comm port *or*
-Pxxx OS/2: Use the specified comm handle
-R Do ringback model of call answering
-S DOS: Do not close stdout and reopen it to NUL
-Txxx Set maximum time user is allowed on system
-X Exit after carrier is lost or after logoff
The DOS version has the -S option because of the propensity of
some fossil drivers to "sign-on" with a message each time they
are initialized by Simplex (e.g. Ray Gwinn's x00.sys). This
behavior has the tendency to kill Simplex's screen which is
undesirable. So, by default, Simplex closes the standard output
file handle (handle 1) and reopens it pointing to NUL. This is
the equivalent of typing "simplex > nul" at the command line! If
your fossil does not do this, or it causes problems on your
system, you may specify the -S flag to stop Simplex from closing
the handle.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 27 Page 27
The -M option enables a mailer program to actually pass a locked
baud rate as a separate entity from the actual baud rate.
Passing the correct connect baud is important for correctly
calculating transfer times for downloads. Simplex NEVER sets the
baud rate when it is passed an open port with -P and -B. Passing
the locked rate at this time doesn't achieve any real purpose if
there is a -X, but this might change in the future.
The -D option permits Simplex to be called as a door to another
program. The other program must somehow create the login file
"simplex.usr" according to the following byte-packed C structure.
All strings are terminated with nul characters (0).
struct uf
{
char uf_name[41]; /* nul-terminated user name, first last */
char uf_password[16]; /* nul-terminated password */
char uf_city[31]; /* nul-terminated city, state */
char uf_home[15]; /* nul-terminated user's home number */
char uf_data[15]; /* nul-terminated user's data/business
number */
char uf_screenlen; /* length of users screen in lines */
int uf_flags; /* bit mapped flags for options, see
URGENT.DOC */
};
The user is logged in and if they have never entered Simplex
before, their user record is created automatically. The -D
option automatically sets the -X flag so that Simplex will exit
if the user drops carrier or logs off.
The -O option is for DOS users who run external programs. The
Simplex program has been dynamically overlay linked, which will
allow it to fit into a smaller chunk of memory than a straight
linked version would. The -O flag will swap as much of Simplex
to EMS or to disk as possible before spawning an external program
so that the external program will get a larger memory block. The
-O will look first for EMS and swap to it if there is enough,
otherwise it will swap to disk. If you have EMS and wish to
reserve it for an external program, use the -OD flag which will
force it to use the disk even if there is enough EMS. The -OE
will force it to use EMS first (same as the -O flag). Swapping
to disk will look for an environment variable TEMP. If it is not
found, it will look for an environment variable TMP. If this is
not found, it uses the current directory. The TEMP/TMP variable
can contain one or a series of paths that are acceptable swapping
locations like this:
set TEMP=h:\;g:\temp
set TMP=d:\temp
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 28 Page 28
It is wise to use your fastest drive (e.g. RAM drive) for
swapping, but you will need at least 600K free for swapping to be
successful.
A front-end mailer program might spawn Simplex with the following
command line in a batch file:
simplex2 -B%1 -P%2 -X
or for a local session, it might use the following:
simplex2 -L -X
In order to let batch files know what is causing Simplex to exit,
it returns different errorlevels. The following errorlevels are
currently supported in Simplex.
0 Normal Simplex exit prompted by Alt-X keystroke.
1 Simplex had an internal error.
2 Normal Simplex exit after user was on and -X or (-D)
was on command line.
3 Netmail was entered and Alt-X pressed or -X (-D) was on
command line.
4 Echomail was entered and Alt-X pressed or -X (-D) was
on command line.
5 Netmail and Echomail were entered and Alt-X pressed or
-X (-D) was on command line.
6+ Errorlevel generated by an event exit.
Errorlevel 2 is especially created for simple Simplex host
applications which need to know if to run external utilities such
as SRECENT or SUSAGE (see below). Obviously, if you have exited
from a waiting-state with Alt-X, there is no need to check to see
if the last user has been added to the database. Hence you could
have a batch file similar to this:
set simplex=d:\host
:runhost
d:
cd \host
simplex2 -x
if errorlevel 3 goto runhost
if errorlevel 1 goto recent
if errorlevel 0 goto end
:recent
srecent 20
susage -G -I
goto runhost
:end
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 29 Page 29
while a Net compatible BBS might have something like:
:runbbs
simplex -b%1 -x
if errorlevel 6 goto recent
if errorlevel 5 goto echomatrix
if errorlevel 4 goto echo
if errorlevel 3 goto matrix
goto recent
:echomatrix
smail -nx -ex
goto recent
:echo
smail -ex
goto recent
:matrix
smail -nx
:recent
srecent 20
susage -G -I
goto runbbs
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 30 Page 30
_________________________________________________________________
Chapter 7 Chapter 7
Setting up Downloadable and QWK Mail Setting up Downloadable and QWK Mail
_________________________________________________________________
As of version 1.04, Simplex handles downloadable mail. This
permits users who keep track of large message bases to be able to
download their mail (optionally in compressed form) using a
protocol, and then using an ASCII file reader/browser (such as
LIST in DOS or LSTPM in OS/2) to read their mail offline.
In order to implement the downloadable feature, you must define a
fileattach directory in option 4 of CONFIG. You must ensure that
there are a few megabytes of space free on the drive you specify
at any time depending upon the total amount of mail most users
would download).
If you are not running Net mail and wish users of the
downloadable mail to have access to the different archivers, you
must set up archivers in option 5 of CONFIG. Whatever archivers
that you provide command line templates for will be presented to
the user as options. To set up an archiver, find the respective
line corresponding to the archiver (ARC, ZIP, LZH, or ZOO) under
option 5 and enter a template line as follows:
[path]archiver [options] %A %F
where %A is the name of the archive-file that will be generated
by Simplex and %F is the name of the file that will be inserted
into the archive. Simplex will look along the path for the
archiver before running. Here are some examples of some command
lines:
ARC Command: arc a5 %A %F
ZIP Command: pkzip -a %A %F
LZH Command: lh2 A %A %F /i /c /o
While Simplex is diligent about deleting the files it creates, it
might not be a bad idea to add a cleanup routine to the batch
file that runs your BBS like this:
del d:\files\fattach\mail*.dl > NUL
del d:\files\fattach\mail*.arc > NUL
del d:\files\fattach\mail*.zip > NUL
del d:\files\fattach\mail*.lzh > NUL
del d:\files\fattach\mail*.zoo > NUL
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 31 Page 31
which would ensure that the area is kept clean.
QWK mail support was added in version 1.05.02. This type of mail
permits users to download their messages, read them offline with
an offline mail reader, reply to them, and then upload the
replies. QWK mail replies are only accepted for areas for which
the user has write permission. QWK netmail is handled by having
the first line in the reply equal to FROM: [zone:]net/node
followed by a newline. The [zone:] is optional. If the user has
enough credit, it is sent direct. If not, it is sent routed. If
the address doesn't exist, then it is marked hold.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 32 Page 32
_________________________________________________________________
Chapter 8 Chapter 8
Virus Checker Interface Virus Checker Interface
_________________________________________________________________
Version 1.05.02 of Simplex was the first version to support virus
checking after uploads. The miscellaneous section of CONFIG
(option 3) allows you to specify a virus checking program to be
called after uploads. The program is called after the upload but
before the user is asked for descriptions. NOTICE that
regardless of the program information, Simplex will add on two
other arguments. These are (a) the full pathname to the upload
list (UPLOAD#?.BBS where ? is the node number) and (b) the node
number which will be used for the (DORINFO?.DEF). If there is
the name of a program in CONFIG, then when the program gets
called, it will have 2 arguments.
The virus checker is expected to open the upload list file, read
it and then check all files listed as OK. If it finds a virus
file, it must replace the OK with BAD and delete the file. When
Simplex regains control, it will get descriptions for the files
marked OK and will attempt to delete the ones marked BAD.
Each line in the upload list file is organized as follows:
OK filename filesize
BAD filename 0
Notice that "OK " is replaced by "BAD" if an uploaded file is
bad, and no description is needed.
Notice that the virus checking interface program can call any
virus scanner and is responsible for determining the archive
type. Notice that duplicate files are renamed to filename.###
where ### is a three digit number. Hence, the archive type must
be determined from looking for signatures in the file.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 33 Page 33
_________________________________________________________________
Chapter 9 Chapter 9
Simplex Ancillary Files Simplex Ancillary Files
_________________________________________________________________
Simplex BBS requires a number of files to be provided by the user
in order to do its normal work and to present a helpful and
friendly interface to the user. The following sections outline
the files that Simplex looks for under various conditions. These
files are named with extensions for users who are using ANSI and
those who are not.
If the user is running ANSI, then the user is presented with the
contents of filename.ANS. If this file cannot be found, or if
the user has ANSI off, the contents of filename.ASC are shown.
This means that you can include as many ANSI sequences as you
wish in the .ANS file but leave them out of the .ASC. If you use
the SANSI compiler, it will automatically prepare the two
distinct files for you.
9.1-Files for Help 9.1-Files for Help
_________________________________________________________________
The files that present help screens should attempt to be very
helpful yet concise at the same time. No user appreciates being
swamped with information when they ask for help! These files
must be in the configured screen path.
DLHELP.A?? This file presents help on the download protocols
available on your Simplex system. It is accessed
by pressing H at the Download Menu.
ULHELP.A?? This file presents help on the upload protocols
available on your Simplex system. It is accessed
by pressing H at the Upload Menu.
NODEHELP.A?? This file presents help on the choices in the
Search Nodelist Menu.
READHELP.A?? This file presents help on the choices available
in the Read Messages Menu.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 34 Page 34
TOPICHLP.A?? This file is shown when a user presses H in the
Read Topics Menu.
EDITHELP.A?? This file is invoked by requesting help from the
Line Editor Menu. It should describe the options
available to the user of the Line Editor.
ANSIHELP.A?? This file presents help when the user of the Full
Screen Editor presses ^K ?. It should present a
list of the options available in that editor.
QSHELP.A?? This file presents the user with help for using
the QuickScan option in a message area.
SCANHELP.A?? This file is shown when a user requests help in
the Scan Menu of a message area.
ADHELP.A?? This file is shown when in read mode while in an
Ad/User Bulletin area.
DOWNMAIL.A?? This file is shown when in the Combined Boards
Download mail menu.
COMBCFG.A?? This file is shown when in the Combined Boards
Configuration menu.
9.2-General Files 9.2-General Files
_________________________________________________________________
These files are called upon in certain specific situations during
the running of Simplex. They are almost essential for providing
a friendly interface between your BBS and the user. These files
must be in the configured screen path.
TOOSLOW.ASC This file does not have an ANSI flavor since the
user's ANSI preference is not known at the time it
is shown. It is shown when a user has logged on
with a modem slower than your minimum baud rate
configured in CONFIG.
LOGO.ASC This file is shown before the user is asked for
his/her name. Since the user's ANSI preference is
not yet known, there is no ANSI flavor of this
file. It is not wise to embed ANSI codes in it
since it might cause undesirable side-effects on
the user's terminal.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 35 Page 35
NOTFOUND.ASC This file is shown after a user enters a name that
is not in the userlist, and before the user is
prompted if they entered the correct name.
PRIVATE.ASC This file is shown only if the user's name is not
in the userlist and the BBS is configured for
preregistered operation.
NONGRATA.ASC This file is shown after a user has confirmed that
their name is correct, and their name is found in
the NONGRATA.BBS file.
ANSI.ASC This file is shown after a user has indicated that
their name was spelled correctly and it was not in
the userlist. It is wise to indicate to the user
that they will be asked a few questions which will
help to configure the system to their liking, and
maybe to explain the meaning of ANSI to them.
PASSWORD.A?? This file is sent before the new user enters
his/her password into the system, or when a user
opts to change his/her password. It should
indicate that they must choose a password of at
least 4 characters and that it should be easy to
remember yet difficult for close friends to guess.
NEWUSER.A?? This file is shown to a user after they have
finished filling out the new-user questionnaire
and before they are provided with the welcome
screen. It is a good idea to welcome them to your
system and maybe to explain some of the rules of
conduct.
NEWUSER.QF This is a questionaire file that is shown to the
user one time. It is shown between NEWUSER.A??
and NEWUSER2.A?? if the user has never answered
the questionaire. Upon completion of the file,
USER_ANSWERED flag is set in the user's flags.
NEWUSER2.A?? This file is shown to users who have called less
than 5 times. It is a good idea to use it to give
a few pointers on the use of your system.
WELCOME.A?? This file is shown to a user after logging in, or
to a new user after NEWUSER2.A??. It precedes the
automatic mail check. This is the place to put a
splashy logo screen since Simplex knows at this
point if the user runs ANSI or not!
DAYQUOTE.CQ This is a compiled quote file (see SQUOTE below)
which is searched for a "random" quote for the
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 36 Page 36
day. A quote from this file will be shown after
WELCOME.A?? and before checking for mail.
BULLETIN.A?? This file shows the latest news on the system to a
user logging in. It is shown after the
WELCOME.A?? and the mail check.
DAYQUOT2.CQ This is a second compiled quote file (see SQUOTE
below) which is searched for a "random" quote for
the day. A quote from this file will be shown
after BULLETIN.A??.
INFO.A?? This file is shown after the bulletin file. It
can be used for anything the Sysop desires.
INFO2.A?? This file is shown after the bulletin and info
files. It can be used for anything that the Sysop
desires.
NOANSWER.A?? This file is shown after a user has yelled and the
Sysop did not answer immediately. It should
explain to the user that the Sysop is unavailable
and that he/she might break in and chat while they
continue using the board normally.
TOOMANY.A?? This file is shown after a user has attempted to
yell but does not have any remaining yells (as set
in CONFIG).
NOYELL.A?? This file is shown when the user attempts to yell
but it is outside of the yell hours configured in
CONFIG. It should indicate to the user that they
should leave the Sysop a message instead.
GOODBYE.A?? This is the last file that the user sees after
logging off of your BBS. It is shown before the
modem is told to hang-up.
9.3-Files Created by CONFIG 9.3-Files Created by CONFIG
_________________________________________________________________
The following files are normal in the Simplex home directory and
are created by CONFIG. They are not meant to be deleted or
edited by any means other than with CONFIG.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 37 Page 37
CONFIG.BBS This file contains the configuration information
needed by Simplex and its utilities. This
information includes the BBS name, the Sysop name,
the paths to different directories, and Net
addresses.
EVENTS.BBS This file contains the event information used by
Simplex.
FILEAREA.BBS This file contains the path and file area name
information referenced by menus.
MSGAREA.BBS This file contains the message area information
which is referenced by menus.
9.4-Files Needed by Simplex 9.4-Files Needed by Simplex
_________________________________________________________________
The following files are absolutely essential for Simplex's
operations and must be in the Simplex home directory. Notice,
Ctrl-Z cannot appear as the End-of-file marker. This rules out
using editors like EDLIN. If your editor uses Ctrl-Z for EOF,
you must use a program that strips Ctrl-Z's to remove them. Most
good editors allow you to write files without Ctrl-Z at the end.
TIMES.BBS This file contains in ascending priority order,
the maximum amount of time in minutes per day that
allowed for each privilege level. The maximum
amount is 1440 minutes (24 hours). The file is
plain ASCII text organized like this:
<level> <time>
as in the following:
1 30
100 60
200 120
255 180
This means that any user with level 1 through 99
has 30 minutes on the system. Any user with level
100 through 199 has 60 minutes on the system. Any
user with level 200 through 254 has 120 minutes on
the system, and any user with level 255 has 180
minutes on the system.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 38 Page 38
USERLIST.BBS This file contains the user records. It is
maintained by using the USERLIST program or by
using the Sysop user-editor from within Simplex
itself.
NONGRATA.BBS This optional file contains the names of all users
that you want locked out of your system. The
format of the file is as follows:
firstname lastname
firstname lastname
for each user that you want to restrict. If the
name is found in this list when a user logs in,
they are shown the NONGRATA.ASC file.
FILES.BBS Each file directory needs a FILES.BBS. This file
contains the names of the files along with a
description line as follows:
<filename> <description>
The filename should be in all caps and any amount
of spaces or tabs may separate it from the
description. The maximum length of a line can be
250 characters. If a line begins with a hyphen
then it and all subsequent lines will be shown in
bright white. If a line begins with a space or
hyphen, it is shown as is. For example:
- My Main File Area
-----------------
FILENAME.DOC A description of this file area for
my users.
SIMPLEX.ZIP The latest Simplex programs.
ANOTHER.LZH Yet another file in this area.
9.5-Files Created by Simplex 9.5-Files Created by Simplex
_________________________________________________________________
The following files are found in the Simplex home directory and
are created and maintained by Simplex and its utilities. They
are best left alone by the user.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 39 Page 39
MSGHEAD.BBS This file contains the header information (such as
to, from, subject) for each message in the Simplex
system. It contains an offset pointer to the
relevant text in MSGBODY.BBS.
MSGBODY.BBS This file contains the text of messages in the
Simplex system.
MSGLINK.BBS This file contains abbreviated information about
each message in the Simplex system and is used for
quick searching.
MSGDATA.BBS This file contains information about the total
number of messages in Simplex and in each message
area.
MSGREAD.BBS This file contains the last-message-read pointers
for each user for each message area in the Simplex
system.
MSGCOMB.BBS This file contains the combined message board
information for each user.
USERINFO.BBS This file contains information about the
last/current user for external utilities to use
(such as SRECENT).
DORINFO#.DEF This file is created by Simplex before running
external programs and contains information used by
certain games and utilities. The # is replaced by
the node number (e.g. 1 if Simplex is on COM1, 2
if on COM2, etc).
9.6-Files used by Simplex Utilities 9.6-Files used by Simplex Utilities
_________________________________________________________________
The following files may be found in the Simplex home directory.
They are files that are needed by external Simplex utilities and
must be edited with a pure-ASCII text editor. They will not be
needed if you do not intend to run Net mail.
AREAS.BBS This file is used by SMAIL to Export/Import
echomail. It is organized as follows:
<msgarea number> <echo-areaname> <destination
addresses>
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 40 Page 40
The <msgarea number> is the Simplex message area
number as defined in CONFIG. The <echo-areaname>
is the official echo "tag" for that echo. The
destination addresses are the addresses which your
BBS "feeds".
The special area "number" P is reserved for "pass
through" echomail areas, that is areas which are
not on your BBS but which you might be passing on
to other BBSes.
Comment lines in this file begin with a semicolon
(;).
In order to support external mail handling by
other packages (e.g. Areafix), there is the
ability to specify a "toss" directory. This is
done in a comment line (to avoid confusing older
packages), and it is formatted as:
; T <"name"> <destination path>
The quotes are essential for names with embedded
spaces (e.g. "John Doe") but not for single word
names (e.g. Autoecho).
Here is an example of an AREAS.BBS file:
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 41 Page 41
; This is a sample AREAS.BBS comment!
;
; Here are normal areas. The mail is tossed into
the
; message base and forwarded if neccessary.
;
10 C_ECHO 1:151/401 1:151/403 1:151/404
1:151/1000
11 SIMPLEX 1:151/401 1:151/404 1:151/1000
12 LUNATIC 1:151/401
;
; Here is a pass-thru area - messages are not
imported,
; just passed on to the respective addresses.
;
P WRITING 1:151/404 1:151/1000
P AMIGA 1:151/403 1:151/1000
;
; Here is an example of a Toss area - messages are
not
; imported, just tossed as *.MSG files into the
; specified directory for later processing.
;
; T areafix g:\bbs\areafix
; T "autoecho" g:\bbs\areafix
C_ECHO, for example, is imported to area 10, and
is forwarded to the other addresses listed. On
the other hand, AMIGA is not imported, but just
forwarded to the listed nodes. Note the full use
of zone notation. If you omit the zone and net
they will default to the same as your zone and net
number as configured in CONFIG (e.g. 10 C_ECHO 401
403 404 1000 is the same as above since my address
is 1:151/402). Messages to areafix or to autoecho
are tossed into the g:\bbs\areafix directory as
MSG files.
Urgent: In AREAS.BBS, the FIRST line must contain
a comment or anything other than an echo area
list. This is for compatibility with older
systems.
SMP.CTL This file is used by SMP to export messages to
other systems. Notice: Prior to version 1.04
Simplex, it was somewhat similar to oMMM's CTL
file. After 1.04's release, the verbs changed
radically to bring them in line with the new
policy underlying Net mail as implemented in
Simplex.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 42 Page 42
Routing verbs allow mail to be converted between
states (Held <-> Routed <-> Direct), moved out and
into of the reach of mailers (Left <-> Send), and
archived (Arc, Zip, Zoo, Lzh) to specific nodes.
Here is a listing of the various verbs:
HOLDTO <destination> <sources...>
This causes all held mail bound to sources to be
held for destination. e.g. HOLDTO 151/402 151/400
151/401 151/402. This holds all held mail for
151/400, 401 and 402 for 151/402.
HOSTHOLD <destinations...>
This causes all held mail bound to destinations to
be held for network host (node 0 of one's net).
e.g. HOSTHOLD 151/ALL 120/ALL will cause all held
mail for nets 151 and 120 to be held for 151/0
(from 151/401).
ROUTETO <destination> <sources...>
This causes all routed mail bound to sources to
get routed to destination. e.g. ROUTETO 151/402
151/ALL 120/ALL will route all routed mail for
nets 151 and 120 to 151/402.
HOSTROUTE <destinations...>
This causes all routed mail bound to destinations
to get routed to network host (node 0 of one's
net). e.g. HOSTROUTE 151/ALL 120/ALL will cause
all routed mail for nets 151 and 120 to be routed
to 151/0 (from 151/401).
DIRECTTO <destination> <sources...>
This causes all direct mail bound to sources to
get directed to destination. e.g. DIRECTTO
151/402 151/ALL 120/ALL will direct all directed
mail for nets 151 and 120 to 151/402.
HOSTDIRECT <destinations...>
This causes all direct mail bound to destinations
to get directed to network host (node 0 of one's
net). e.g. HOSTDIRECT 151/ALL 120/ALL will cause
all routed mail for nets 151 and 120 to be
directed to 151/0 (from 151/401).
ARCHOLD <destination> <sources...>
ZIPHOLD <destination> <sources...>
LZHHOLD <destination> <sources...>
ARJHOLD <destination> <sources...>
ZOOHOLD <destination> <sources...>
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 43 Page 43
These options archive held mail for sources using
the archiver specified to the specified
destination. e.g. ZIPHOLD 151/402 151/401 151/402
151/405 151/406 will archive all held mail to
151/401, 402, 405 and 406 with ZIP and route it to
151/402.
ARCROUTE <destination> <sources...>
ZIPROUTE <destination> <sources...>
LZHROUTE <destination> <sources...>
ARJROUTE <destination> <sources...>
ZOOROUTE <destination> <sources...>
These options archive routed mail for sources
using the archiver specified to the specified
destination. e.g. ZIPROUTE 151/402 151/401
151/402 151/405 151/406 will archive all routed
mail to 151/401, 402, 405 and 406 with ZIP and
route it to 151/402.
ARCDIRECT <destination> <sources...>
ZIPDIRECT <destination> <sources...>
LZHDIRECT <destination> <sources...>
ARJDIRECT <destination> <sources...>
ZOODIRECT <destination> <sources...>
These options archive direct mail for sources
using the archiver specified to the specified
destination. e.g. ZIPDIRECT 151/402 151/401
151/402 151/405 151/406 will archive all direct
mail to 151/401, 402, 405 and 406 with ZIP and
route it to 151/402.
HOLDROUTE <destinations...>
This option converts all held mail bound for
destinations to routed mail (from HOLD to ROUTE).
e.g. HOLDROUTE 151/402 will convert held mail for
151/402 to routed mail.
HOLDDIRECT <destinations...>
This option converts all held mail bound for
destinations to directed mail (from HOLD to
DIRECT). e.g. HOLDROUTE 151/402 will convert held
mail for 151/402 to directed mail.
ROUTEHOLD <destinations...>
This option converts all routed mail bound for
destinations to held mail (from ROUTE to HOLD).
e.g. ROUTEHOLD 151/402 will convert routed mail
for 151/402 to held mail.
ROUTEDIRECT <destinations...>
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 44 Page 44
This option converts all routed mail bound for
destinations to directed mail (from ROUTE to
DIRECT). e.g. ROUTEDIRECT 151/402 will convert
routed mail for 151/402 to directed mail.
DIRECTHOLD <destinations...>
This option converts all direct mail bound for
destinations to held mail (from DIRECT to HOLD).
e.g. DIRECTHOLD 151/402 will convert directed mail
for 151/402 to held mail.
DIRECTROUTE <destinations...>
This option converts all direct mail bound for
destinations to routed mail (from DIRECT to
ROUTE). e.g. DIRECTROUTE 151/402 will convert
directed mail for 151/402 to routed mail.
LEAVEHOLD <destinations...>
This option converts all held mail bound for
destinations to non-active held mail.
LEAVEROUTE <destinations...>
This option converts all routed mail bound for
destinations to non-active routed mail.
LEAVEDIRECT <destinations...>
This option converts all direct mail bound for
destinations to non-active direct mail.
SENDHOLD <destinations...>
This option converts all non-active held mail
bound for destinations to regular held mail.
SENDROUTE <destinations...>
This option converts all non-active routed mail
bound for destinations to regular routed mail.
SENDDIRECT <destinations...>
This option converts all non-active direct mail
bound for destinations to regular direct mail.
POLL <destinations...>
This will create a blank .flo file to the
destinations providing there is not already direct
mail addressed to the same address.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 45 Page 45
_________________________________________________________________
Chapter 10 Chapter 10
Simplex Sysop Options Simplex Sysop Options
_________________________________________________________________
There are a number of features in Simplex that cater exclusively
to the sysop or the user running in local mode. These are
evaluated in the following sections.
10.1-The Sysop's Keyboard 10.1-The Sysop's Keyboard
_________________________________________________________________
While a user is online, the Sysop has a number of keys at his
disposal. These can be used to raise or lower the user's time,
drop into chat mode, or terminate a user.
The following keys are active on the Sysop's keyboard when a user
is online:
Alt-A Abort upload or download. This key combination
is the only one active during uploads and
downloads and has no meaning otherwise.
Alt-C Initiate chat mode. Once in chat mode, ESC exits
and returns the user to the BBS. Ctrl-G sends a
beep to the other terminal and Ctrl-L toggles the
Sysop's chat log on and off. Ctrl-F toggles in
an 8th bit filter which is handy when you
encounter a user who is online with 7-E-1 instead
of 8-N-1 and you wish to chat with them and tell
them of their mistake!
Alt-F Edit a user's flags. In this mode, merely press
the letter corresponding to the flag you wish to
toggle and press Enter to finish.
Alt-K Switch keyboard on or off. This is handy if
there is any danger of keys being pressed
accidentally by little fingers.
Alt-J Jump to DOS (or OS/2) shell. This suspends the
BBS and allows you to work at the DOS prompt.
When you are finished, type "exit" at the prompt
and the BBS will regain control.
Alt-H Help! Toggle showing of sysop keys on status
line.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 46 Page 46
Alt-P Edit a user's privilege level. Once in this
mode, type in the new user's privilege level
(between 1 and 255) and hit Enter to change it.
To cancel changes, just press Enter on an empty
field.
Alt-T Terminate a user. Hangup immediately.
Alt-X Exit Simplex while it is waiting for a call.
Ctrl-PgUp Increase a user's time by one minute.
Ctrl-PgDn Decrease a user's time by one minute.
10.2-Local Uploading and Downloading 10.2-Local Uploading and Downloading
_________________________________________________________________
While in local mode, the upload and download options would seem
superfluous. However, Simplex uses them as specialized copy
commands.
A local Download will ask for a destination directory and then a
list of filenames. It would then copy the files to that
directory.
A local Upload will ask for a source directory and then a list of
filenames. It would then copy the files in to the current file
area and then prompt for file descriptions for each file.
10.3-Message Exporting 10.3-Message Exporting
_________________________________________________________________
In local mode, a privileged user will have an <E>xport option on
his/her message menu. This permits the user to send a copy of
the message to any file or device. To send the message to the
printer on lpt1:, just enter the name LPT1 as the export filename
and press Enter.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 47 Page 47
10.4-Downloading Hours 10.4-Downloading Hours
_________________________________________________________________
Simplex, as of v 1.04.02, enforces downloading hours as set up in
CONFIG. By default, these hours extend from 00:00 to 23:59 (all
day), but they can be set to reflect any downloading time zone
that you care to enforce. The start time does not HAVE to be
earlier than the stop time (e.g. from 17:00 to 08:00).
Sysops can still download outside of these hours. In order to
implement this feature in v 1.04.02, everyone with a priv level
of 250->255 is considered "Sysop" level. This will disappear in
a future version of Simplex wherein you can set the level to what
you prefer it to be.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 48 Page 48
_________________________________________________________________
Chapter 11 Chapter 11
Simplex External Mail Utilities Simplex External Mail Utilities
_________________________________________________________________
This chapter describes all of the external mail utilities for
Simplex. These utilities are basically of two types, utilities
to maintain Simplex's message base, and utilities to handle
incoming and outgoing Net mail.
Simplex's message base is contained in a series of files
contained in the Simplex root directory. The message files are
described above. Net mail is exported from the message base in
standard FSC-0001 message format. Incoming Net mail may be
either in standard FSC-0001 packed message packets or in archived
format. Outgoing Net mail is prepared in standard FSC-0001
packed message packets and then archived by SMP.
11.1-SUPACK: Simplex Deleted User Packing Utility 11.1-SUPACK: Simplex Deleted User Packing Utility
_________________________________________________________________
SUPACK.EXE (or SUPACK2.EXE for OS/2) is a utility to purge
deleted users from the Simplex user's list. Just run the utility
from the command line whenever you have deleted users. This
utility will pack the USERLIST.BBS file, the MSGCOMB.BBS (for
combined boards), and MSGREAD.BBS (for lastread pointers) into
.BAK files. If everything is successful, the .BBS files will
then be deleted and the .BAK files will be renamed.
11.2-SCLEAN: Simplex Mail Cleaning Utility 11.2-SCLEAN: Simplex Mail Cleaning Utility
_________________________________________________________________
SCLEAN.EXE (or SCLEAN2.EXE for OS/2) is a message base
maintenance program which cleans out messages from message
boards. Messages can be cleaned out completely from message
boards, deleted if received, or deleted if older than a specified
number of days. SCLEAN has the following options:
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 49 Page 49
-q Quiet....do not show message by message activity
-dxx Sets maximum days for message killing to xx
-nxx Sets maximum number of messages to keep on boards
to xx
-knxx Kill messages on board #xx keeping maximum number
in area
-kaxx Kill ALL messages on board #xx
-kdxx Kill messages prior to maximum days on board #xx
-krxx Kill all received messages on board #xx
The quiet flag can be used to speed up SCLEAN considerably on
slow machines.
SCLEAN can be used to kill messages older than 10 days on message
boards 1, 7 and 12 and kill all received messages on board 8 with
the following command line:
sclean -d10 -kd1 -kd7 -kd12 -kr8
The -ka option will normally be used to remove a defunct message
board's messages from the message base. Notice that SCLEAN
merely deletes messages and does not actually remove them from
the message base.
11.3-SPACK: Simplex Message Base Deletion 11.3-SPACK: Simplex Message Base Deletion
_________________________________________________________________
SPACK.EXE (or SPACK2.EXE for OS/2) is a message base compression
program. It will analyse the message base and determine how many
messages have been deleted, then check file space prior to
packing. Packing may optionally be done in-place instead of in
duplicate files if disk space is at a premium, however this
method is frowned upon since it might be dangerous should a power
failure occur.
SPACK has the following command line options:
-q Quiet....do not show message activity
-k Kill unreasonably sized messages (>100K each)
-p Pack message base
-w Write message base files in place
The quiet flag will speed up SPACK considerably and should be
used on slow machines!
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 50 Page 50
In order to pack the message base, use the following command
line:
spack -p
Notice: While SPACK runs, if it finds messages larger than 100K,
it will automatically delete them under the presumption that if a
message is that large, it is most likely a corruption of the
message base.
11.4-SLINK: Simplex Message Thread Linker 11.4-SLINK: Simplex Message Thread Linker
_________________________________________________________________
SLINK.EXE (or SLINK2.EXE for OS/2) is a message base thread
linker program which will link messages by topic by message
board. What SLINK loads all the message topics for a board,
removes all RE's from the topic lines, then links matching
message topics into threads.
By default, SLINK links ALL message boards, however if a file
called SLINK.BBS is located in the root Simplex directory, only
the board numbers contained in that file are linked (SLINK.BBS is
a series of 16-bit ints with each board number to link). This
file is generally created by SMAIL when it is importing Net mail
so that SLINK would not waste time uselessly relinking boards
that were not imported.
There are no options to SLINK. To run it, merely type SLINK (or
SLINK2) on the command line and hit Enter.
11.5-SMAIL: Simplex Net Mail Utility 11.5-SMAIL: Simplex Net Mail Utility
_________________________________________________________________
SMAIL.EXE (or SMAIL2.EXE for OS/2) is a Net mail importation and
exportation utility. SMAIL is used to export Net mail and
Echomail to other systems after mail has been entered, a
situation which can be determined by Simplex's exit errorlevel.
Incoming Net and echomail can be imported into the Simplex
message base when your front-end mailer detects incoming mail
packets.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 51 Page 51
The command line options for SMAIL are the following:
-ua unarc inbound mail packets
-it import/toss net and echo mail
-ib import/toss net and echo mail in bad messages
area
-nx export netmail to other systems
-ex export echomail to other systems
-re report on echomail passing through the system
-es enable echo security
-r export echomail as ROUTED (normal) instead of
DIRECT (CM)
-s disable conversion of "sysop" messages to sysop's
name
-#xxx limit number of .MSG files im matrix to xxx.
-c### clean out signatures over ### days old
SMAIL uses the unarchiver command lines from CONFIG's option 5 if
you specify the -ua flag. It also uses the packet path from
CONFIG's option 4 as the destination directory for the contents
of the archived mail.
SMAIL handles Echomail signatures, which are files containing
data from messages which have passed through the system. These
are kept in order to stop duplicate messages from being passed
along. These signatures are kept in the Simplex directory in
files called SMAILxxx.SIG where where xxx is the Julian date of
the year when the signature file is created. These files can be
maintained by using the SMAIL -c command. This deletes signature
files older then the specified number of days. A reasonable
period to keep signatures is between 3 and 10 days. Too short a
period might allow duplicates to slip through, and too long a
period will slow the system down excessively while loading the
files. The best time in your setting will be best left to
experimentation!
The -ES flag enables echomail security. This ensures that
echomail for each area is only imported from nodes listed for
that echo in the AREAS.BBS file.
The -RE flag reads in the signature files and generates an
echomail traffic report for each area contained in the areas.bbs
file.
Echomail is exported generally as DIRECT (Crash) by SMAIL. Since
most other mail processors normally toss it out as ROUTED, SMAIL
allows you to select the -r flag if this is your preferred
methodology.
Since DOS has problems with large quantities of files in a
directory on FAT drives, systems that handle lots of mail can use
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 52 Page 52
SMAIL to limit the actual number of files in a directory by using
the -# option. This option will not allow *.MSG files to exceed
the number following the # (i.e. -#250 limits the MSG files to
250). If mail still remains to be tossed because SMAIL reached
this limit, it creates a file in the Simplex directory called
SMAIL.LIM. Your batch file can always check for the existence of
this file and loop back to catch the rest of the mail when SMP
completes packing. Here is an example:
:unpack
smail -ua -it -#250
smp -p
if exist smail.lim goto unpack
SMAIL, by default, converts any messages addressed to "Sysop"
over to messages addressed to the sysop's name as specified in
CONFIG. This behavior might be considered annoying by some
Sysops and therefore can be disabled using the -s switch on the
command line.
Here are some sample parts of a Net mail compatible system's
batch file which illustrate using SMAIL for exporting entered
mail:
:runbbs
simplex -b%d -x
if errorlevel 6 goto runbbs
if errorlevel 5 goto echomatrix
if errorlevel 4 goto echo
if errorlevel 3 goto matrix
goto runbbs
:echomatrix
smail -nx -ex
smp -p
goto end
:echo
smail -ex
smp -p
goto end
:matrix
smail -nx
smp -p
goto end
:end
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 53 Page 53
Here is a sample of a front-end mailer's batch file,
demonstrating the use of SMAIL for importing and forwarding
incoming mail.
:runmailer
mailer
if errorlevel 2 goto runmailer
if errorlevel 1 goto import
goto end
:import
smail -ua -it
smp -p
goto runmailer
:end
11.6-SMP: Simplex Mail Packer 11.6-SMP: Simplex Mail Packer
_________________________________________________________________
SMP (or SMP2 for OS/2) is a Net compatible mail
router/packer/archiver. It uses the archiver command lines from
CONFIG's option 5. Essentially SMP reads the messages in the
matrix directory, and based on the rules in the SMP.CTL file (see
above), packs the messages in packets and optionally archives
them to their ultimate destinations.
SMP will delete truncated (i.e. 0-length) files in the outbound
directories before it begins packing. Notice that it will not
delete truncated files for the current day of the week, only for
the other 6 days.
SMP's options are the following:
-p Pack and route files in matrix and outbound areas
-s(tag) Use information for sched (tag) in SMP.CTL where
(tag) is a letter from A to Z
Use of SMP is demonstrated in the sample batch files under SMAIL
above.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 54 Page 54
11.7-SMAILFIX: Simplex Mail Fixer 11.7-SMAILFIX: Simplex Mail Fixer
_________________________________________________________________
Occasionally, systems crash and lock up. That is almost a rule
in the world of computing. Unfortunately, these crashes and
lock-ups have a nasty habit of occurring at the worst possible
moment, and in the case of Simplex, the worst possible moment is
when the message base is being manipulated! Since the message
base files are so intertwined, any corruption to any of the files
could be quite disasterous.
Hence the raison d'etre of SMAILFIX. Should your message base
appear to have become corrupted, SMAILFIX gives you a chance to
attempt to restore/rebuild some of the message files so that you
can recover as much of the message base as possible. OS/2 users
should ensure that no utilities are able to manipulate the
message files while SMAILFIX is running, and both DOS and OS/2
users should ensure that their systems do not shut down or reboot
before SMAILFIX is finished.
To run SMAILFIX, just type it's name on the command line and hit
Enter. Notice that you should be in your Simplex root directory
when you do this. SMAILFIX will prompt you if you are sure that
you want to run it. Answer Y and it will begin attempting to
recover your message base. Once it is finished it will inform
you if you need to run SLINK and/or SPACK on the message base.
An option for SMAILFIX is the -DATE (or /DATE) option. This
makes SMAILFIX delete any messages which have a date beyond
today's date.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 55 Page 55
_________________________________________________________________
Chapter 12 Chapter 12
SUSAGE and SRECENT: Simplex Screen Builders SUSAGE and SRECENT: Simplex Screen Builders
_________________________________________________________________
There are two utilities which can be used by Simplex in order to
generate special screens. These are SUSAGE, a utility which
generates an hourly usage chart for your system, and SRECENT, a
utility which creates and maintains a recent callers listing. In
order to take advantage of these utilities, one must have the BBS
exit after each user has logged off. Both of these utilities
read and utilize the USERINFO.BBS file created when a user logs
in.
SUSAGE must have the -G option enabled in order to generate usage
files. These files are placed in the screens directory and are
appropriately named SUSAGE.ANS and SUSAGE.ASC. These files
normally use normal 7-bit ASCII characters to build the bar
charts, but should you prefer to use IBM 8-bit characters, you
can specify that with the optional -I switch.
SRECENT must have a numeric option which specifies the number of
last callers that you want to keep up with. SRECENT 30 will keep
information on 30 users and will build the screens with that
information. The resulting screens are placed in the screens
directory and are called SRECENT.ANS and SRECENT.ASC.
You may list names which you do not wish to show up on the recent
callers list by creating a file with an editor in the Simplex
directory called SRECENT.CFG. This file would contain the first
and last names of people who are exempt from SRECENT separated by
an ENTER. For example:
Susan Smith
Fred Flintstone
John Doe
Jane Doe
Whenever these people log off, they will not be included in the
recent-callers list.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 56 Page 56
_________________________________________________________________
Chapter 13 Chapter 13
Simplex Questionaire Language Simplex Questionaire Language
_________________________________________________________________
Simplex has a rather simple but powerful questionaire language.
A questionaire file is an ascii file with a .QF extension which
is placed in the screen files directory. This file can be
created using a flat-ASCII text editor.
The answer file is placed in the same directory and has the same
base name as the questionaire file, however it sports an .AF
extension.
The following is an alphabetical list of questionaire commands.
Commands are case-insensitive. Strings are included in double
quotes like this "string".
ASK (variable) (len) : This will accept up to the maximum
length specified of a user's input and store it in the
variable specified. After hitting Enter, the system
will go to the next line.
CHOOSE (variable) (choices) : This will load the variable
specified with the choice letter selected from the list
of choices.
CLS : Clears the screen to the current color.
COLOR (foreground) [(background)] : Sets the current color
to the specified foreground/background (optional)
color.
EXIT : Immediately exits the questionnaire file.
GOTO (labelname) : Jumps to the label specified. If label
is not found, it will exit.
HANGUP : Unconditionally drops carrier on the user.
IF (variable) = ("string") *or*
IF (variable) != ("string") *or*
IF (variable) = (variable) *or*
IF (variable) != (variable)
ENDIF : If the case is true, the questionnaire will fall
into the if-endif. If it is not true, it will skip
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 57 Page 57
over it. *Warning* Do not "nest" ifs! The !=
indicates "not equal to".
HANGUP : Causes Simplex to hangup on the user immediately.
LABEL (labelname) : Sets the labelname as a point to which
the GOTO will jump. If a label is reused, then it will
replace the previous use.
LEAVEMESSAGE (area #) ("user_name") : Permits the user to
leave a message to the specified username in the area.
Notice that you MUST separate first and last name with
an underscore ("_") and NOT a space.
LOGENTRY ("string") *or*
LOGENTRY (variable) : This will stick the string into the
Simplex sysop log.
PRINT ("string") *or*
PRINT (variable) : Shows a string of contents of a variable
on the screen. Does not go to the next line.
PRINTLINE ("string") *or*
PRINTLINE (variable) : Shows a string of contents of a
variable on the screen. This will then go to the next
line.
SET (variable) = ("string") *or*
SET (variable) = (variable) : Sets a variable to a string
value or to the value of another variable.
SETFLAG ("string") : Turns on or sets the user's flags
corresponding to the letters contained in the string (A
through P, 16 flags) and updates the user's record.
SETPRIV (priv) : Sets the user's priv level to the
specified level if it is a legal value (1 - 255).
SHOW ("filename") : Shows a file (filename.ans if ansi is
on, otherwise filename.asc if it is not.
UNSETFLAG ("string") : Turns off or resets the user's flags
corresponding to the letters contained in the string (A
through P, 16 flags) and updates the user's record.
WRITEINFO : Writes the user's name, time and date, and
other info to the questionnaire answer file.
WRITE ("string") *or*
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 58 Page 58
WRITE (variable) : Writes the string or variable to the
questionnaire answer file. This does not add a CR-LF
pair at the end.
WRITELINE ("string") *or*
WRITELINE (variable) : Writes the string or variable to the
questionnaire answer file. This adds a CR-LF pair at
the end.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 59 Page 59
_________________________________________________________________
Chapter 14 Chapter 14
SQUOTE: Simplex Quote File Compiler SQUOTE: Simplex Quote File Compiler
_________________________________________________________________
You may create quote files for Simplex which are searched for
random sayings either on login (see DAYQUOTE.CQ above) or in
response to a type 52 menu option. These files can contain salty
wisdom sayings, scripture verses, variations on Murphy's Law,
short jokes, or whatever else you desire. Simplex can "randomly"
select one of these sayings on demand and show it to the user.
Creating quote files is a rather simple operation. You need to
edit a flat-ASCII file containing one quote per line (Maximum of
512 characters per saying) and then compile it using SQUOTE. The
quote file produced by SQUOTE must be placed in the screen files
directory. The uncompiled quote file must have a .Q extension
(e.g. DAYQUOTE.Q) and the compiler will create a file with a .CQ
extension (e.g. DAYQUOTE.CQ).
Here is an example of a simple uncompiled quote file:
The toast always falls on the carpet buttered-side down!
A penny saved is a penny earned.
God is love. (I John 4:16a NIV)
Notice that each line is an individual saying. Blank lines
between quote lines will not hurt anything so you could group
similar sayings together and separate them with blank lines as
above. This might make it easier to maintain your quote files.
Assume that the above file is called DAYQUOTE.Q, compiling it is
achieved by doing:
SQUOTE dayquote[.Q]
where the .Q is assumed and is optional. The compiler will
indicate how many lines of quotes it found and write out a
DAYQUOTE.CQ file.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 60 Page 60
_________________________________________________________________
Chapter 15 Chapter 15
SANSI: Simplex Ansi Compiler SANSI: Simplex Ansi Compiler
_________________________________________________________________
In order to assist you in preparing your ANSI and ASCII files,
Simplex includes a compiler and a high-level language. This
system is called SANSI. You can write a single "source" file
which includes all of the information for screens which can be
compiled into the respective .ANS and .ASC files. The compiler
will leave any ANSI statements out of of the .ASC files.
The SANSI language will also access to special Simplex features
as well as ANSI codes. Special SANSI codes are introduced with `
(forward single quote) in the .ANS and .ASC files (`` is
interpreted by Simplex as being a `), however, use of the high-
level language is strongly recommended for ease of maintenance.
SANSI keywords are encoded in text in curly braces as in
{sequence}. Any number of SANSI keywords may be included in the
curly braces separated by spaces (like {stopoff cls bell}). To
encode an true opening curly brace, simply type two in a row like
this {{. Following is a list of SANSI keywords and codes.
15.1-SANSI User's Personal Information 15.1-SANSI User's Personal Information
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`A User's Full Name name
`B User's First Name first
`C User's Last Name last
`D User's City-State citystate
`E User's Home Number homephone
`F User's Work/Data Number dataphone
`G User's Password password
`H User's Privilege Level (1 to 255) priv
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 61 Page 61
15.2-SANSI User's BBS Settings 15.2-SANSI User's BBS Settings
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`M User's Baud Rate (300 -> 19200 or Local) baud
`N User's Ansi Setting (On or Off) ansi
`O User's More Setting (On or Off) more
`P User's Clearscreen Setting (On or Off) clear
`Q User's Editor Setting (Line or Ansi) editor
`R User's Expert-mode Setting (On or Off) expert
`S Length of User's Screen Page (for More) pagelen
`T User's Netmail Credit ($x.xx) credit
15.3-SANSI User's Time/File Information 15.3-SANSI User's Time/File Information
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`a Date of User's First Call (MM/DD/YY) firstdate
`b Date of User's Last Call (MM/DD/YY) lastdate
`c Time of User's Last Call (HH:MM) lasttime
`d User's Total Daily Time (M mins S secs) totaltime
`e Total Time Used Today (M mins S secs) timeused
`f Time Remaining for Today (M mins S secs) timeleft
`g Time Used During This Call (M mins S secs) timeon
`h User's Total Uploads (Number of Files) ul
`i User's Total Uploaded Bytes (Kilobytes) ulkb
`j User's Total Downloads (Number of Files) dl
`k User's Total Downloaded Bytes (Kilobytes) dlkb
`l Number of User's Calls to System calls
15.4-SANSI System Information 15.4-SANSI System Information
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`p Day of Week (Monday, Tuesday, ... Sunday) day
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 62 Page 62
`q Short Day of Week (Mon, Tue, ... Sun) shortday
`r Date (MM/DD/YY) date
`s Time (HH:MM:SS) time
`t Number of Times User Yelled for Chat yells
`u Total Number of Users on System users
`v Last User on System lastuser
15.5-SANSI System Control 15.5-SANSI System Control
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`0 Turn [More] Off moreoff
`1 Turn [More] back On (If user allows it) moreon
`2 Turn [Stop] Off stopoff
`3 Turn [Stop] On stopon
`4 Pause and Wait for [Enter] to be Pressed enter
`5 Clearscreen code (FF character) cls
`6 Bell bell
`7 Backspace bs
15.6-SANSI ANSI Sequences 15.6-SANSI ANSI Sequences
_________________________________________________________________
Representation SANSI Keyword
-------------------------------------------- -------------
Set black foreground black
Set red foreground red
Set green foreground green
Set brown foreground brown
Set blue foreground blue
Set magenta foreground magenta
Set cyan foreground cyan
Set white foreground white or lightgray
Set gray foreground gray or lightblack
Set light red foreground lightred
Set light green foreground lightgreen
Set yellow foreground yellow or
lightbrown
Set light blue foreground lightblue
Set light magenta foreground lightmagenta
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 63 Page 63
Set light cyan foreground lightcyan
Set bright white foreground lightwhite
Set black background onblack
Set red background onred
Set green background ongreen
Set brown background onbrown
Set blue background onblue
Set magenta background onmagenta
Set cyan background oncyan
Set white background onwhite
Set blinking characters blink
Erase to End of Line erasetoeol
Erase to End of Screen erasetoeos
Erase to cursor from top of screen erasefromtos
Erase screen erasescreen
Move cursor up one line cursorup
Move cursor down one line cursordown
Move cursor left one character cursorleft
Move cursor right one character cursorright
Home cursor home
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 64 Page 64
_________________________________________________________________
Chapter 16 Chapter 16
SMC: Simplex Menu Compiler/Decompiler SMC: Simplex Menu Compiler/Decompiler
_________________________________________________________________
In order to speed up development of menus on big Simplex
applications, it might be easier to use SMC, the Simplex Menu
Compiler. This allows you to use a text editor to build menu
source files, and thus be able to use the block-copy and
find/replace facilities of the editor to ease the burden of menu
development.
Keywords are the following:
menu "STRING" : This sets the name of the menu file and resets
the line number counter. Maximum length of string is 8
characters.
e.g. menu "main"
prompt "STRING" : Sets the string as the prompt and all
subsequent information before the next "menu" or "line"
keywords will refer to the prompt. Maximum length for
string is 70 characters.
e.g. prompt "[^$r min^] What is your choice? "
line "STRING" : Sets the string as a menu line and all
subsequent information before the next "menu",
"prompt", or "line" keywords will refer to the new
line.
e.g. line "<^M^> Go to Message Areas"
define DEFINITION NUMBER *or*
define DEFINITION "string" : Allows the definition of a
constant value, either numeric or string. Later use of
the definitions will be substitued for the
representative number or string by the compiler.
e.g. define WHITE 15
define RETURN "<^M^> Return to main menu"
type NUMBER : This is only valid in a "line" clause and sets
the type of the menu item to the specified value. For
a list of menu types see above or type SMC without
parameters.
e.g. type 0 /* show a menu line */
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 65 Page 65
priv VALUE : This is only valid in a "line" clause and sets
the user privilege needed to see/access the menu item.
This value may be between 0 and 255.
e.g. priv 255
flags "flag_vals" : This is only valid in a "line" clause and
sets the user flags needed to see/access the menu item.
Flags are lettered from A to P (16 flags).
e.g. flags "ABJMP"
color VALUE : This is valid in a "line" clause or a "prompt"
clause. It sets the non-highlighted color for either
the current line or the current prompt. The value is a
normal IBM color value from 0 to 255. See below for a
list of color values.
e.g. color 10
hilite VALUE : This is valid in a "line" clause or a "prompt"
clause. It sets the hilighted color for either the
current line or the current prompt. The value is a
normal IBM color value from 0 to 255. See below for a
list of color values.
e.g. hilite 14
key "CHARACTER" : This is valid only in a "line" clause and it
sets the value of the hotkey to trigger the option for
that menu line. A character is any value >= ASCII 32
decimal. To specify a non-keyed line, use key "" with
nothing between the quotes. The character may be upper
or lowercase, however when a character is receieved by
the menu handler, it is case does not matter (i.e.
there is no difference between key "A" and key "a").
e.g. key "A"
auto : This is valid only in a "line" clause and indicates
that the menu item autoexecutes when its line is being
shown. See menu type 49 above for an example of using
autoexecution.
e.g. auto
expert : This is valid only in a "line" clause and indicates
that the menu item is shown even if a user has expert
mode toggled on. At least menu titles should be
qualified with the expert keyword so that a user can
know where they are on your system.
e.g. expert
data "STRING" : This is valid only in a "line" clause. It is
used to provide the additional data line needed by
various menu types (see above). Maximum length of
string is 70 characters.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 66 Page 66
e.g. data "logoff password"
Using the SMC compiler will permit you to use the script language
to put together a series of menus (you can have more than one
menu in a .SMC file) and avoid the overhead of using the line-
by-line menu editor in CONFIG. Should you wish to decompile an
already existant menu, you can do it with the command line:
SMC /d file.mnu > file.smc
which will redirect the decompiler's output into the required
file which can then be editord and then recompiled using the
following command line:
SMC file[.SMC]
Color values in the IBM machine consist of an 8 bit number which
is broken up as follows:
High | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Low
^ | Background| ^ | Foreground|
Blink Hilight
The background and foreground colors range from 0 to 7 and
represent the following:
0 Black 4 Red
1 Blue 5 Magenta
2 Green 6 Brown (Dark Yellow)
3 Cyan 7 Light Gray (Dark White)
The highlight bit refers to the foreground color so that
essentially the following color numbers in the lower 4 bits
indicate the following colors:
8 Dark Gray 12 Light Red
9 Light Blue 13 Light Magenta
10 Light Green 14 Yellow
11 Light Cyan 15 White
The blink bit will make the foreground color blink. Here is a
list of all of the possible combinations using a black
foreground:
0 Black on black 128 Blink black on black
16 Black on blue 144 Blink black on blue
32 Black on green 160 Blink black on green
48 Black on cyan 176 Blink black on cyan
64 Black on red 192 Blink black on red
80 Black on magenta 208 Blink black on magenta
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 67 Page 67
96 Black on brown 224 Blink black on brown
112 Black on white 240 Blink black on white
Using this table, merely add your desired foreground color to the
base value given, and you will have the number for that color.
For example, light red on white is 12 + 112 = 124!
In strings, to encode a literal " (double quote), use the
sequence \". For example, "this is a \"string\"" will become:
this is a "string"
after it is compiled.
In menu lines and menu data lines, the following meta commands
are recognized and are substituted accordingly:
$$ Dollar sign $r Time left for call (mins)
$f User's first name $l User's last name
$d Current date $t Current time
$a User's ANSI flag $u User's number on system
$b User's baud rate $## File board's directory
In menu lines the following have special significance:
$c As the final two chars of a line means "continue"
next menu line without going to next line.
^ Indicates a change of color from normal to hilight or
vice versa.
^^ Means show a caret (^) mark.
In data lines the following have special significance:
$* Shell with hot fossil (DOS only). Do not
deinitialize fossil driver before executing program.
Note that this option is not passed as a parameter to
the program in a type 240 menu option.
$e After executing program, pause and wait for Enter
before continuing. Note that this option is not
passed as a parameter to the program in a type 240
menu option.
Here is a sample fragment of an SMC script for a menu:
/* Comments are done like this and can span
** multiple lines. */
menu "logoff" /* this begins the menu called logoff */
prompt "[^$r min^] What is your choice?"
color 15 hilite 14
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 68 Page 68
line "[ ^Log Off Menu ^ >----------------------"
type 0 expert priv 0 color 13 hilite 14
line "" /* blank "space holder" line */
type 0 priv 0 color 7 hilite 15
line ""
type 0 priv 0 color 7 hilite 15
line "<^Y^> Yes, log me off right now!"
type 255 key "Y" priv 0 color 11 hilite 14
line "<^N^> No, do not log me off!"
type 3 key "N" priv 0 color 10 hilite 14
line "<^L^> Leave a message to Sysop and log off!"
type 16 key "L" data "1 /T=Chris_Laforet /L"
priv 0 color 12 hilite 14
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 69 Page 69
_________________________________________________________________
Chapter 17 Chapter 17
Acknowlegements and Thanks Acknowlegements and Thanks
_________________________________________________________________
First of all, thanks goes to God for His strength and guidance
during the development of Simplex BBS. Without His Spirit, this
project would never have made it off of the ground!
I know that it is not very often that I seem appreciative of the
many bug reports from my beta testers, especially since bugs pop
up at the most inconvenient times. I know that getting a BBS up
and running can be rough especially when you have bugs to contend
with, and users who jump all over you when features break down!!
Thank you guys for a job well done, and may I add, keep up the
good work.
The job accomplished by beta testers is so important and yet it
is downplayed. These are the guys who actually stand on the
front line and get pounded by bugs and undocumented "features".
Special thanks goes to my beta testers:
Scott Hughes of NightHawk BBS
Robert King of Collosus Programmer's Net BBS
Jesse Warford of Nightwings ][ BBS
Tony Till of The Starship BBS
Eric Weaver of North State BBS
Dale Robertson of D & R BBS
Robbie Foust of Stardate Multiline BBS
Thanks goes especially for my wife, Sherry, a "computer widow"
who spent much time listening to me pecking at the keyboard late
into the night for the many months spent while developing
Simplex. She is the one who named the package and I dedicate it
to her and to my lovely daughter Rebekah.
Thanks to Brady Flowers of Oberon Software in Mankato, MN for
helping me through some of OS/2's uncharted reefs!
Thanks to those who have helped in many little ways, including
beta testing over the past versions. I would like to mention the
following names in this regard:
Kelly Hughes of Bedside Manor BBS
Fred Niemczenia of The Warped Drive BBS
Robbie Foust of Stardate Multiline BBS
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 70 Page 70
Craig Newlander of Chicago, Ill
Steven Tower of Neutral Zone BBS
Al Pollenz of Dateline 2100 BBS
Thanks to the many people who have made excellent suggestions for
features in Simplex over the course of time. Thanks also to the
many kind souls who reported bugs and who sent messages of
encouragement.
Thanks to those dedicated users who have taken time to write
utilities for Simplex. Any BBS package is improved by having a
rich set of external programs to enhance it. In this respect,
Simplex's ultimate success will depend upon the utility writers.
Sometimes, the utility authors help to improve the package by
making suggestions for additional features to support their
utilities. Invariably this helps to shape Simplex into a better
package!
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 71 Page 71
____________________________________________________________
Table of Contents Table of Contents
____________________________________________________________
Chapter 1 Legalistic Mumbo-Jumbo (i.e. Better Read Chapter 1
This Stuff) 2
Chapter 2 Introduction to Simplex 4 Chapter 2
Chapter 3 Installing Simplex 5 Chapter 3
3.1 Simplex and Answering the Phone . . . . . . 6 3.1
3.2 Setting Up Simplex BBS Paths . . . . . . . . 6 3.2
3.3 Presumptions Underlying Simplex's Net Mail . 7 3.3
3.4 Installing a Network Node . . . . . . . . . 9 3.4
3.5 Setting up a non-Net BBS . . . . . . . . . 10 3.5
3.6 Configuring Simplex with CONFIG . . . . . 10 3.6
Chapter 4 Simplex Menu Types 15 Chapter 4
Chapter 5 Menu Templates 25 Chapter 5
5.1 Assigning Menu Template Macros . . . . . . 25 5.1
5.2 Using Template Macro Assignments . . . . . 26 5.2
Chapter 6 Running Simplex 27 Chapter 6
Chapter 7 Setting up Downloadable and QWK Mail 31 Chapter 7
Chapter 8 Virus Checker Interface 33 Chapter 8
Chapter 9 Simplex Ancillary Files 34 Chapter 9
9.1 Files for Help . . . . . . . . . . . . . . 34 9.1
9.2 General Files . . . . . . . . . . . . . . 35 9.2
9.3 Files Created by CONFIG . . . . . . . . . 37 9.3
9.4 Files Needed by Simplex . . . . . . . . . 38 9.4
9.5 Files Created by Simplex . . . . . . . . . 39 9.5
9.6 Files used by Simplex Utilities . . . . . 40 9.6
Chapter 10 Simplex Sysop Options 46 Chapter 10
10.1 The Sysop's Keyboard . . . . . . . . . . 46 10.1
10.2 Local Uploading and Downloading . . . . . 47 10.2
10.3 Message Exporting . . . . . . . . . . . . 47 10.3
10.4 Downloading Hours . . . . . . . . . . . . 48 10.4
Chapter 11 Simplex External Mail Utilities 49 Chapter 11
11.1 SUPACK: Simplex Deleted User Packing 11.1
Utility . . . . . . . . . . . . . . . . . 49
i
11.2 SCLEAN: Simplex Mail Cleaning Utility . . 49 11.2
11.3 SPACK: Simplex Message Base Deletion . . 50 11.3
11.4 SLINK: Simplex Message Thread Linker . . 51 11.4
11.5 SMAIL: Simplex Net Mail Utility . . . . . 51 11.5
11.6 SMP: Simplex Mail Packer . . . . . . . . 54 11.6
11.7 SMAILFIX: Simplex Mail Fixer . . . . . . 55 11.7
Chapter 12 SUSAGE and SRECENT: Simplex Screen Chapter 12
Builders 56
Chapter 13 Simplex Questionaire Language 57 Chapter 13
Chapter 14 SQUOTE: Simplex Quote File Compiler 60 Chapter 14
Chapter 15 SANSI: Simplex Ansi Compiler 61 Chapter 15
15.1 SANSI User's Personal Information . . . . 61 15.1
15.2 SANSI User's BBS Settings . . . . . . . . 62 15.2
15.3 SANSI User's Time/File Information . . . 62 15.3
15.4 SANSI System Information . . . . . . . . 62 15.4
15.5 SANSI System Control . . . . . . . . . . 63 15.5
15.6 SANSI ANSI Sequences . . . . . . . . . . 63 15.6
Chapter 16 SMC: Simplex Menu Compiler/Decompiler 65 Chapter 16
Chapter 17 Acknowlegements and Thanks 70 Chapter 17
ii